使用IMAGE_FILE_LARGE_ADDRESS_AWARE标志有什么副作用?

WeG*_*ars 4 delphi

在程序中使用IMAGE_FILE_LARGE_ADDRESS_AWARE标志(使用超过2GB的RAM)有什么副作用?

我在FastMM4上使用Delphi 7。

Dav*_*nan 5

您需要确保不使用内置的内存管理器,而要使用可以支持> 2GB地址的设备。例如FastMM。

您的代码库中可能还有其他代码,通常是第三方代码,这会弄脏地址> 2GB的地址。我个人通过在64位Windows下运行并通过注册表设置强制系统使用自上而下的内存分配来处理此问题

执行此操作时,您可能会在Windows中遇到一些错误。例如,当Vista的GetCursorPos参数的地址大于2GB时,它将失败。我通过使用经过GetCursorInfo的版本修补Windows.GetCursorPos来解决此问题。此错误已在Windows 7中修复,但MS选择不将其向后移植到Vista。

我无法强调启用自上而下的内存分配对运行的重要性。