gpt4 book ai didi

c++ - 我如何在 VC++ 中使用 _W64 和 __w64?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:25 24 4
gpt4 key购买 nike

有这样的东西 __w64在 Visual C++ 9 中。我在尝试将我的 native 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__w64 看起来都没用。我打算如何使用它们以及我应该如何在 64 位项目中定义 _W64

最佳答案

__w64 用于标记在 32 位和 64 位环境中具有不同大小的类型。当您将可能为 64 位的类型分配给 32 位类型时,编译器可能会发出警告。

如果切换 MSDN: __w64查看最新版本,可以看到该关键字已弃用。当您尝试使用/Wp64 选项进行编译时,VC9 甚至会生成警告。

关于c++ - 我如何在 VC++ 中使用 _W64 和 __w64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com