Qualsiasi domanda da un PROFI a un SUPER PROFI - 1. - pagina 33

 

Grazie! Tutto questo è stato letto molte volte, naturalmente. Forse non c'è la possibilità di aumentare le dimensioni del display che è già aperto. Devi fare tutto da solo.

1. Spostare i dati pezzo per pezzo in una nuova mappatura temporanea.

2. Chiudere il vecchio.

3. aprirne uno nuovo con una dimensione maggiore.

4. Spostare tutto dalla mappatura temporanea pezzo per pezzo lì.

Inquietante. Lungo tutto.

 

il link lì dice che i dati sono ancora coerenti quando si apre una visualizzazione della stessa cosa ma in dimensioni diverse, cioè tutto è effettivamente memorizzato in un posto. ed è semplicemente proiettato.

Il mio punto è che copiare potrebbe non essere necessario

 

È la stessa cosa con lo stesso nome? Se è così, si apre la stessa mappatura, ma con un nuovo descrittore. È esattamente quello che ho fatto. La dimensione non aumenta.

Dovete chiudere tutti i descrittori e solo allora potrete riaprirlo con la nuova dimensione.

I dati possono essere trasferiti da una mappatura all'altra solo attraverso la memoria del processo corrente.

 

Ho capito come fare!

Si dovrebbe sempre aprire una mappatura di un file temporaneo. Con una dimensione minima di 1 byte. Quando si apre il file di mappatura, tutto si salverà nel file. Poi riaprire la mappatura di questo file con una nuova dimensione.

 
Dovrò fare una prova.
 
FAQ:

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


dwMaximumSizeHigh è un alto valore a 64 bit della dimensione della memoria condivisa (più di 4 Gbt) - non abbiamo bisogno di così tanto :) - Assegniamo il valore 0 a questo argomento.

dwMaximumSizeLow - Grazie ai simpatici abitanti del Regno che hanno segnalato l'errore nella descrizione di questo argomento! Soprattutto il signor Uno che l'ha spiegato molto bene! (vedi commento all'articolo) - il valore inferiore a 64 bit della dimensione della memoria condivisa - se dwMaximumSizeHigh è uguale a 0, la dimensione di questo argomento deve essere almeno SIZE OF DATA per essere messa nel file di swap. Si notiche la dimensione della "pagina" Intel è di 4 KBt, cioè se si specifica 1 byte, si ottiene una "tasca per la condivisione" :) 4 KBt, se si specifica 4001, si possono mettere fino a 8Kbt di dati nell'oggetto file mapping, ecc.

Un ringraziamento speciale per questo promemoria. Ha aiutato a risolvere un altro problema.

Rielaborata la protezione della memoria nella libreria di mappatura. L'ho dimenticato. Costantemente spuntano i miei avvertimenti sulla memoria insufficiente. Però l'ho assegnato automaticamente.

Ho fatto un sogno la scorsa notte :-)

 
hanno un exp piuttosto lungo (~3000) e tutto il codice in un blocco (senza inlude e sia) a un certo punto la scheda con variabili esterne è mancante. Qualche variante?
 
La libreria #property si è persa da qualche parte nel codice?
 
già trovato :)
 
mishanya7777777:
perché non c'è un'esecuzione immediata nel conto demo?
Smettila di spammare. Hai anche creato un thread e stai ancora spammando.