在我的程序中使用 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志(使用超过 2GB 的 RAM)有什么副作用?
我正在使用 Delphi 7 和 FastMM4。
最佳答案
您需要确保不使用内置内存管理器并使用可以支持>2GB地址的东西。例如FastMM。
您的代码库中可能有其他代码(通常是第 3 方代码),这些代码将与 >2GB 的地址发生冲突。我个人通过在 64 位 Windows 下运行并强制系统使用 top-down memory allocation via a registry setting 来处理此问题。 .
执行此操作时,您可能会在 Windows 中遇到一些错误。例如GetCursorPos在 Vista 上,当其参数的地址 >2GB 时会失败。我通过使用经历 GetCursorInfo 的版本修补 Windows.GetCursorPos 来解决这个问题。 。此错误在 Windows 7 中已修复,但 MS 选择不将其向后移植到 Vista。
启用自上而下的内存分配来运行是多么重要,我怎么强调都不为过。
关于delphi - 使用 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志有哪些副作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4583550/