Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасбо! Это всё, конечно, читал много раз. Возможно, увеличения размера уже открытого отображения не предусмотрено. Всё самому надо делать.
1. Переложить данные по частям в новое временное отображение.
2. Закрыть старое.
3. Открыть новое с большим размером.
4. Переложить туда всё по частям из временного отображения.
Жуть. Долго всё.
там по ссылке написано, что данные при открытии отображения одного и того же но в разных размера все равно остаются когеренты, то есть на самом деле все хранится в одном месте. и просто проецируется.
Это я к тому, что копировать возможно не понадобится
Одно и тоже это с одним именем? Если так, то открывается то же отображение, но с новым дескриптором. Именно так делал. Размер не увеличивается.
Надо закрыть все дескрипторы и только тогда можно заново открыть его с новым размером.
Передать данные из одного отображения в другое можно только через память текущего процесса.
Придумал, как сделать!
Надо всегда открывать файловое отображение временного файла. С минимальным размером в 1 байт. При пероткрытии файлового отображения всё само сохраниться в файле. Потом опять открыть файловое отображение этого файла с новым размером.
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 данных и т.д.
За это напоминание отдельное спасибо. Помогло решить другую проблему.
Переделал защиту памяти в библиотеке для маппинга. Про это забыл. Постоянно выскакивали мои предупреждения о нехватке памяти. Хотя, у меня она автоматически выделяется.
Вот ночью приснилось :-)
скажите пожалуста почему на дэмо счёте отсутствует немедленное исполнение?