Cualquier pregunta de un PROFI a un SUPER PROFI - 1. - página 33

 

Gracias. Todo esto se ha leído muchas veces, por supuesto. Tal vez no haya ninguna disposición para aumentar el tamaño de la pantalla que ya está abierta. Tienes que hacerlo todo tú mismo.

1. Mueve los datos pieza por pieza a una nueva asignación temporal.

2. Cierra el antiguo.

3. abrir una nueva con un tamaño mayor.

4. Mueve todo desde el mapeo temporal pieza por pieza allí.

Espeluznante. Es largo.

 

en el enlace se dice que los datos siguen siendo coherentes cuando se abre un mapeo de los mismos pero en diferentes tamaños, es decir, todo está realmente almacenado en un solo lugar. y simplemente se proyecta.

Lo que quiero decir es que copiar puede no ser necesario

 

¿Es lo mismo con el mismo nombre? Si es así, se abre el mismo mapeo, pero con un nuevo descriptor. Eso es exactamente lo que hice. El tamaño no aumenta.

Tienes que cerrar todos los descriptores y sólo entonces podrás reabrirlo con el nuevo tamaño.

Los datos pueden ser transferidos de un mapeo a otro sólo a través de la memoria del proceso actual.

 

Ya he descubierto cómo hacerlo.

Siempre se debe abrir una asignación de archivos de un archivo temporal. Con un tamaño mínimo de 1 byte. Al abrir el mapeo de archivos, todo se guardará en el archivo. A continuación, vuelva a abrir la asignación de archivos de este archivo con un nuevo tamaño.

 
Tendré que probarlo.
 
FAQ:

http://www.delphisources.ru/pages/faq/base/filemapping.html


dwMaximumSizeHigh es un valor alto de 64 bits del tamaño de la memoria compartida (más de 4 Gbt) - no necesitamos tanto :) - Asignemos el valor 0 a este argumento.

dwMaximumSizeLow - ¡Gracias a los amables habitantes del Reino que señalaron el error en la descripción de este argumento! Especialmente el Sr. Uno, que lo ha explicado muy bien. (ver comentario al artículo) - el valor inferior de 64 bits del tamaño de la memoria compartida - si dwMaximumSizeHigh es igual a 0, el tamaño de este argumento debe ser al menos SIZE OF DATA para ser colocado en el archivo de intercambio. Tenga en cuentaque el tamaño de la "página" de Intel es de 4 KBt, es decir, si especifica 1 byte, obtendrá un "bolsillo para compartir" :) 4 KBt, si especifica 4001, podrá poner hasta 8Kbt de datos en el objeto de asignación de archivos, etc.

Gracias especialmente por este recordatorio. Ayudó a resolver otro problema.

Se ha modificado la protección de la memoria en la biblioteca de mapeo. Lo había olvidado. Constantemente aparecían mis advertencias sobre la memoria insuficiente. Sin embargo, lo tengo asignado automáticamente.

Anoche tuve un sueño :-)

 
tengo un exp bastante largo (~3000) y todo el código en un solo bloque (sin inludes y tampoco) en algún momento falta la pestaña con las variables externas. ¿Alguna variante?
 
¿Se ha perdido la biblioteca #property en algún lugar del código?
 
ya lo he encontrado :)
 
mishanya7777777:
¿por qué no hay ejecución inmediata en la cuenta demo?
Deja de hacer spam de una vez. Incluso has creado un hilo y sigues haciendo spam.
Razón de la queja: