2011-10-19 14 views
7

Chcę, aby moja aplikacja mogła korzystać z więcej niż 2 GB pamięci, szukałem go w Google i stwierdziłem, że polecenie IMAGE_FILE_LARGE_ADDRESS_AWARE pozwala mi to zrobić.Delphi 2007 IMAGE_FILE_LARGE_ADDRESS_AWARE

Więc dodałem

{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} 

Aby .dpr pliku mojego programu, po tych wszystkich zastosowań i {$ R * .res} linię,

ale kiedy kompilacji, pojawia się błąd:

E2003 Undeclared identifier: 'IMAGE_FILE_LARGE_ADDRESS_AWARE' 

Co robię źle?

Ponadto, na Windows 7 64bit, czy muszę zadzierać z ustawieniami rozruchowymi, aby to polecenie działało, lub po prostu skompilować aplikację 32-bitową za pomocą polecenia i zrobi to wszystko automatycznie?

Dzięki

+10

dodaj "używa Windows" –

+2

Dzięki, to działało! – KingOfKong

Odpowiedz

5

Also, on Windows 7 64bit, do I need to mess around with boot settings for this command to work, or just compile a 32bit application with the command and it will do everything else automatically?

64-bitowego systemu Windows dostarczy 4 GB przestrzeni adresowej automatycznie, bez poprawek rozruchowych.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb613473%28v=vs.85%29.aspx:

To enable an application to use the larger address space, set the IMAGE_FILE_LARGE_ADDRESS_AWARE flag in the image header. The linker included with Microsoft Visual C++ supports the /LARGEADDRESSAWARE switch to set this flag. Setting this flag and then running the application on a system that does not have 4GT support should not affect the application.

On 64-bit editions of Windows, 32-bit applications marked with the IMAGE_FILE_LARGE_ADDRESS_AWARE flag have 4 GB of address space available.

5

Odpowiedź na pytanie rzeczywistego jest dodanie wykorzystuje jednostkę Windows.

Powiązane problemy