【问题标题】:Specific difference between _WIN64 and TARGET_X64 macros in Visual StudioVisual Studio 中 _WIN64 和 TARGET_X64 宏的具体区别
【发布时间】:2014-03-17 05:32:00
【问题描述】:

大多数时候 _WIN64 宏在 Microsoft Visual Studio 2008 中运行良好,但 TARGET_X64 无法正常运行。请用具体示例解释这两个宏。

【问题讨论】:

    标签: c++ c visual-studio visual-c++


    【解决方案1】:

    Visual C++ 编译器在为 64 位目标编译时预定义 _WIN64。要专门测试 x64/amd64,请改为测试 _M_X64。编译器预定义的其他宏请咨询the documentation

    TARGET_X64 既不是由 Windows SDK 也不是由 Visual C++ 库或工具链定义的。它必须在项目的其他地方或其依赖项之一中定义。

    【讨论】:

    • 但是_WIN64不会自动包含在预处理器中。
    • 是的。该宏是为所有 64 位版本预定义的。
    • 我想知道检查任意 x64 版本是否真正合适/最佳的宏是什么(使用 VS 2008/2010); _WIN64Target_x64 ?
    • 如我的回答和我链接到的文档页面中所述,测试_M_X64。它是为 x64 构建定义的;它没有为所有其他构建定义。
    猜你喜欢
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多