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

时间:2011-01-03 10:02:37

标签: delphi

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

我正在使用带有FastMM4的Delphi 7。

1 个答案:

答案 0 :(得分:4)

您需要确保不使用内置内存管理器并使用可支持地址> 2GB的内容。例如FastMM。

您的代码库中可能还有其他代码(通常是第三方代码),这些代码将违反地址> 2GB。我个人通过在64位Windows下运行并强制系统使用top-down memory allocation via a registry setting来处理这个问题。

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

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