Как следует из названия, я запускаю 32-битное приложение под win 7 64-битной. Приложение выполнено на C ++ в Embarcadero XE2. Мне нужно более 2 ГБ памяти.
шаги:
— Я включил переключатель 3GB и перезагрузил компьютер.
— Я попытался добавить -GF: LARGEADDRESSAWARE к параметрам проекта / c ++ linker / Флаги вывода, но затем не удалось связать. Там сказано: «Сбой команды GF:» или что-то в этом роде.
Затем я нашел на форуме, что вы должны сделать это вручную в файле .bpr в разделе FLAGS. Я добавил флаг, а затем связал проект. Тем не менее, индикатор доступной памяти в приложении говорит мне, что я все еще получаю менее 2 ГБ.
Вопросы:
1. как правильно сделать эту работу?
2. как узнать есть ли у меня 3gb памяти или нет?
заранее спасибо
/3GB
Переключатель только для 32-битных систем. Ваша система является 64-битной системой. Это означает, что 32-битный исполняемый файл с LARGEADDRESSAWARE
Флаг PE будет иметь адресное пространство 4 ГБ. Не пытайтесь использовать /3GB
вариант загрузки.
Вы можете проверить, имеет ли ваш исполняемый файл LARGEADDRESSAWARE
Флаг PE устанавливается с помощью любого инструмента просмотра PE. С инструментарием MS вы бы использовали dumpbin
, Эквивалентный набор инструментов Embarcadero tdump
, Кроме того, есть бесчисленные зрители GUI PE. Найдите инструмент, который работает, и убедитесь, что вы правильно установили этот флаг PE.
Других решений пока нет …