| / | Форум |
|
Zhunko
03.02.2012 17:53
Спасбо! Это всё, конечно, читал много раз. Возможно, увеличения размера уже открытого отображения не предусмотрено. Всё самому надо делать. 1. Переложить данные по частям в новое временное отображение. 2. Закрыть старое. 3. Открыть новое с большим размером. 4. Переложить туда всё по частям из временного отображения. Жуть. Долго всё. |
7382 |
sergeev
03.02.2012 17:56
там по ссылке написано, что данные при открытии отображения одного и того же но в разных размера все равно остаются когеренты, то есть на самом деле все хранится в одном месте. и просто проецируется. Это я к тому, что копировать возможно не понадобится |
|
Zhunko
03.02.2012 19:15
Одно и тоже это с одним именем? Если так, то открывается то же отображение, но с новым дескриптором. Именно так делал. Размер не увеличивается. Надо закрыть все дескрипторы и только тогда можно заново открыть его с новым размером. Передать данные из одного отображения в другое можно только через память текущего процесса. |
|
Zhunko
03.02.2012 23:43
Придумал, как сделать! Надо всегда открывать файловое отображение временного файла. С минимальным размером в 1 байт. При пероткрытии файлового отображения всё само сохраниться в файле. Потом опять открыть файловое отображение этого файла с новым размером. |
1034 |
FAQ
04.02.2012 00:15
Надо будет попробовать.
|
|
Zhunko
04.02.2012 12:17
FAQ: http://www.delphisources.ru/pages/faq/base/filemapping.html dwMaximumSizeHigh - старший разряд 64-битного значения размера выделяемого объема памяти для совместного доступа (более 4 Gbt)- нам столько не надо :) - присвоим этому аргументу значение 0. dwMaximumSizeLow - Спасибо славным жителям Королевства, указавшим на ошибку в описании этого аргумента! В особенности г-ну Uno, который замечательно все объяснил! (см. комментарий к статье) - младший разряд 64-битного значения размера выделяемого объема памяти для совместного доступа - если размер dwMaximumSizeHigh равен 0, то размер этого аргумента должен быть НЕ МЕНЬШЕ РАЗМЕРА ДАННЫХ помещаемых в файл подкачки. При этом надо учитывать то, что размер "страницы" для Intel составляет 4 KBt, т.е. указав этот размер 1 байт мы получим "карман для совместного доступа" :) в 4 KBt, если указать 4001, то в объект файлового отображения можно будет поместить уже до 8Kbt данных и т.д. За это напоминание отдельное спасибо. Помогло решить другую проблему. Переделал защиту памяти в библиотеке для маппинга. Про это забыл. Постоянно выскакивали мои предупреждения о нехватке памяти. Хотя, у меня она автоматически выделяется. Вот ночью приснилось :-) |
1034 |
FAQ
15.02.2012 14:54
имеем довольно длинного экспа (~3000) причем весь код в одном блоке (без инклюдов и либок) в какой то момент времени пропала вкладка с внешними переменными. Есть варианты ?
|
7382 |
sergeev
15.02.2012 15:15
#property library затесался где то в коде?
|
1034 |
FAQ
15.02.2012 15:16
уже нашел, ...ать его :)
|
12489 |
Mathemat
05.03.2012 18:17
mishanya7777777: Хватит уже спамить. Даже ветку создали, а все равно продолжаете.скажите пожалуста почему на дэмо счёте отсутствует немедленное исполнение? |