<分区>
我们有一个 32 位 Windows 应用程序,它使用 C++ 和良好的旧 Windows 应用程序模型。技术上是否可以通过转动编译器开关或使用一些宏来拥有单一源并将其编译为 32 位和 64 位?
目前我认为代码不会编译为 64 位应用程序,我必须修复编译错误,一般来说我应该如何进行才能编译为 64 位和 32 位应用程序。我应该记住什么?会有哪些挑战?任何意见和提示将不胜感激。 谢谢
<分区>
我们有一个 32 位 Windows 应用程序,它使用 C++ 和良好的旧 Windows 应用程序模型。技术上是否可以通过转动编译器开关或使用一些宏来拥有单一源并将其编译为 32 位和 64 位?
目前我认为代码不会编译为 64 位应用程序,我必须修复编译错误,一般来说我应该如何进行才能编译为 64 位和 32 位应用程序。我应该记住什么?会有哪些挑战?任何意见和提示将不胜感激。 谢谢
最佳答案
关于“我应该记住什么?会有哪些挑战?”这些是我在将代码从 32 位移植到 64 位时遇到的最常见问题:
确保在编译时使用最严格的警告级别(Microsoft 编译器上的 /W4
或 gcc 上的 -Wall -Wextra -pedantic-errors
)以帮助捕获转换从较大的类型到较小的类型。
这是微软的 guide用于移植,但也适用于其他编译器。
关于c++ - 与 32 位和 64 位应用程序相同源的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746550/