致力于将 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/