致力于将 32 位 Windows C++ 应用程序移植到 64 位。不幸的是,该代码在 DWORD 和指针值之间使用了双向的频繁转换。

其中一个想法是在进程启动时尽早保留前 4GB 的虚拟进程空间,以便所有后续的保留内存调用都来自大于 4GB 的虚拟地址。这将导致访问冲突错误任何从指针到 DWORD 然后返回到指针的不安全强制转换,并有助于及早捕获错误。

当我查看一个非常简单的单行 C++ 程序的内存映射时,底部 4GB 内加载了许多库?有没有办法确保所有库等只加载到 4GB 以上?

谢谢

最佳答案

使用 /Wp64 开关(检测 64 位可移植性问题)编译您的项目并修复所有警告。

关于c++ - 如何在x64 C++应用程序中保留底部4GB VM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1168481/

10-11 07:08