Qualquer pergunta de um PROFI para um SUPER PROFI - 1. - página 33

 

Obrigado! Tudo isso já foi lido muitas vezes, é claro. Talvez não haja previsão para aumentar o tamanho do display que já está aberto. Você tem que fazer tudo sozinho.

1. Mova os dados peça por peça para um novo mapeamento temporário.

2. Feche o antigo.

3. Abra um novo com um tamanho maior.

4. Mova tudo do mapeamento temporário peça por peça para lá.

Assustador. Tudo comprido.

 

o link ali diz que os dados ainda são coerentes quando se abre um mapeamento do mesmo, mas em tamanhos diferentes, ou seja, tudo é realmente armazenado em um único lugar e é simplesmente projetado.

Meu ponto é que a cópia pode não ser necessária

 

É a mesma coisa com o mesmo nome? Se assim for, o mesmo mapeamento se abre, mas com um novo descritor. Foi exatamente isso que eu fiz. O tamanho não aumenta.

Você tem que fechar todos os descritores e só então você pode reabri-lo com o novo tamanho.

Os dados só podem ser transferidos de um mapeamento para outro através da memória do processo atual.

 

Descubra como fazer isso!

Você deve sempre abrir um arquivo de mapeamento de um arquivo temporário. Com um tamanho mínimo de 1 byte. Quando você abre o mapeamento do arquivo, tudo se salvará no arquivo. Em seguida, reabrir o mapeamento deste arquivo com um novo tamanho.

 
Vou ter que tentar.
 
FAQ:

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


dwMaximumSizeHigh é um alto valor de 64 bits de memória compartilhada (mais de 4 Gbt) - não precisamos tanto assim :) - Vamos atribuir valor 0 a este argumento.

dwMaximumSizeLow - Graças aos simpáticos habitantes do Reino, que apontaram o erro na descrição deste argumento! Especialmente o Sr. Uno que o explicou muito bem! (ver comentário ao artigo) - o menor valor de 64 bits de tamanho de memória compartilhada - se dwMaximumSizeHigh for igual a 0, o tamanho deste argumento deve ser pelo menos TAMANHO DE DADOS para ser colocado no arquivo swap. Noteque o tamanho da "página" Intel é 4 KBt, ou seja, se você especificar 1 byte, você recebe um "bolso para compartilhar" :) 4 KBt, se você especificar 4001, você pode colocar até 8Kbt de dados no objeto de mapeamento de arquivo, etc.

Agradecimentos especiais por este lembrete. Ajudou a resolver outro problema.

Reformulou a proteção da memória na biblioteca de mapeamento. Esqueci-me disso. Constantemente surgiram meus avisos sobre a memória insuficiente. No entanto, eu o tenho alocado automaticamente.

Tive um sonho ontem à noite :-)

 
têm um exp (~3000) bastante longo e todos os códigos em um bloco (sem inlúdios e qualquer um dos dois) em algum momento falta a aba com variáveis externas. Alguma variante ?
 
A biblioteca #propriedade se perdeu em algum lugar do código?
 
já o encontrou :)
 
mishanya7777777:
por que não há uma execução imediata na conta demo?
Pare já de fazer spam. Você até criou um tópico e ainda está enviando spam.