有这样的事情__w64 http://msdn.microsoft.com/en-us/library/s04b5w00(VS.71).aspx在 Visual C++ 9 中。我在尝试将本机 C++ DLL 移植到 64 位时遇到了它。特别是在crtdefs.h
有这个漂亮的片段:
#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
and __w64
看起来没用。我打算如何使用它们以及我应该如何定义_W64
在 64 位项目中?
__w64
用于标记 32 位和 64 位环境中具有不同大小的类型。当您将可能的 64 位类型分配给 32 位类型时,编译器可能会发出警告。
如果您切换MSDN:__w64 http://msdn.microsoft.com/en-us/library/s04b5w00.aspx查看最新版本,可以看到该关键字已被弃用。当您尝试使用 /Wp64 选项进行编译时,VC9 甚至会生成警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)