我正在尝试让 32 位应用程序能够在 64 位版本的 Windows 7 Ultimate 上使用超过 2GB 的内存。目前,当内存达到 2GB 时,它就会崩溃。我听说在 32 位版本的 Windows XP、Vista 和 7 中,有办法将其提升到 3GB。设置 increaseuserva 似乎不起作用。(我安装了 4GB。如果你想知道,它是《矮人要塞》。)
答案1
根据此 MSDN 页面在 64 位 Windows 7 上,32 位进程的最大地址空间为 4Gb。但,这需要进程设置IMAGE_FILE_LARGE_ADDRESS_AWARE
标志。
设置IMAGE_FILE_LARGE_ADDRESS_AWARE
是一个更大的问题,因为它必须在链接编译软件时需要执行的阶段。请参阅另一个 MSDN 页面了解更多信息。
您可能还希望看到这个 StackOverflow问题,也许这也提供一些一般信息。