是否有一个为64位版本定义的简单预处理程序宏?我以为_WIN64
可能就是这样,但是即使我构建了32位目标,#ifdef _WIN64 ... #endif
中包含的部分也会被编译进去,这会引起问题。今天是星期五,我不能直截了当,但是我敢肯定,我在这里忽略了一些非常简单的事情。甚至可能涉及sizeof
。
最佳答案
我一直使用_WIN64来检查它是否是64位版本。
N.B. _WIN32也总是由MSVC在64位版本中自动定义的,因此在检查_WIN32之前请先检查_WIN64:
#if defined( _WIN64 )
// Windows 64 bit code here
#elif defined( _WIN32 )
// Windows 32 bit code here
#else
// Non-Windows code here
#endif