【发布时间】:2009-11-06 09:01:55
【问题描述】:
在 Visual C++ 9 中有 __w64 这样的东西。我在尝试将我的原生 C++ DLL 移植到 64 位时遇到了它。特别是在crtdefs.h 有这个不错的sn-p:
#if !defined(_W64)
#if !defined(__midl) && (defined(_X86_) || defined (_M_IX86)) && _MSC_VER >= 1300
#define _W64 __w64
#else
#define _W64
#endif
#endif
如果我理解正确,这意味着对于 64 位,_W64 被定义为空字符串并且没有任何效果,但对于 32 位,它被定义为 __w64。
我尝试将 _W64 定义为空字符串,然后依次将 __w64 定义为,并且至少两次项目在 64 位配置中都能正常编译。
也就是说_W64 和__w64 看起来都没用。我打算如何使用它们以及如何在 64 位项目中定义 _W64?
【问题讨论】:
标签: c++ visual-studio visual-studio-2008 visual-c++ 64-bit