2016-01-28 2 views
2

Как говорится в заголовке, я запускаю 32-разрядное приложение под win 7 64 бит. Приложение выполнено на C++ в Embarcadero XE2. Мне нужно больше 2 ГБ памяти.Запуск 32-битного приложения Borland XE2 под Win 7 64bit с переключателем/3gb (-GF LARGEADESSESSWWARE)?

Шаги: - Я включил переключатель 3GB, и я перезагрузил компьютер. - Я попробовал добавить -GF: LARGEADDRESSAWARE, чтобы проектировать параметры/C++ linker/Output Flags, но затем связь не удалась. Он сказал: «Неудачная команда GF:» или что-то в этом роде. Затем я нашел на форуме, что вы должны сделать это вручную в файле .bpr в разделе FLAGS. Я добавил флаг, а затем связанный проект. Тем не менее, мой индикатор доступности памяти в приложении говорит мне, что я все еще получаю менее 2 ГБ.

Вопросы: 1. Как правильно сделать эту работу? 2. Как узнать, есть ли у меня 3 ГБ памяти или нет?

Спасибо заранее

+0

Если вы не можете добавить компоновщик Embarcadero для добавления флага, вы можете всегда использовать настраиваемый шаг сборки с 'editbin' из SDK для добавления флага. –

+0

Помните, что вы не можете получить 2 ГБ _contiguous_ памяти! – MSalters

ответ

4

Переключатель /3GB предназначен только для 32-битных систем. Ваша система - 64-битная система. Это означает, что 32-разрядный исполняемый файл с флагом PE LARGEADDRESSAWARE будет иметь адресное пространство 4 ГБ. Не пытайтесь использовать опцию загрузки /3GB.

Вы можете проверить, установлен ли ваш исполняемый файл флагом PE LARGEADDRESSAWARE, используя любой инструмент просмотра PE. С помощью MS toolchain вы должны использовать dumpbin. Эквивалентный эквивалент Embarcadero равен tdump. Кроме того, существует множество зрителей с графическим интерфейсом. Найдите инструмент, который работает, и убедитесь, что вы правильно установили этот флаг PE.

+0

ОК. Я понимаю. позвольте мне посмотреть, что я могу сделать, и я вернусь к вам. благодаря ! –

+0

Я не могу заставить его работать. Я добавил флаг/largeaddressaware в BUilder XE2 в C++ linker/Output/Flags –

+0

Что значит «не может заставить его работать». Документация здесь (http://docwiki.embarcadero.com/RADStudio/XE2/en/ILINK32.EXE,_the_Incremental_Linker) сообщает вам, что делать. Как вы диагностировали неудачу. Имейте в виду, что мы не можем видеть ваш экран и комментарии, такие как «не может заставить его работать» не передать никакого реального смысла. –

 Смежные вопросы

  • Нет связанных вопросов^_^