gpt4 book ai didi

visual-studio-2010 - 64位windows平台WIN32预处理器定义

转载 作者:行者123 更新时间:2023-12-04 04:05:55 25 4
gpt4 key购买 nike

在将 Visual 2012 C++ 项目迁移到目标 64 位平台时,我们是否应该将预处理器定义从 WIN32 更改为 WIN64。

现在我已经使用以下设置构建了项目

  • MACHINE(指定目标平台)设置为 /MACHINE:X64 .
  • 目标环境设置为 /env x64
  • 在 C/C++ 项目设置 -> 代码生成,结构成员
    8 字节对齐

  • 请指导我应该针对哪些其他项目设置进行更改。

    最佳答案

    需要注意的是,只有这些预处理器定义的下划线版本与 32 位与 64 位机器之间的区别有关。

    下划线版本 _WIN32 和 _WIN64 是与运行 VC++ 的计算机的实际物理 CPU 相关的内置程序。在 32 位机器上,_WIN32 总是会被定义(用户不需要定义),但 _WIN64 不会被定义。在 64 位机器上,_WIN64 将始终定义,也可以定义 _WIN32,但代码可以依赖 _WIN64 来确定机器是否为 64 位。

    对于 Visual Studio 2019(可能还有其他 VS 版本):

    非下划线 WIN32 没有很好的文档记录,似乎与 32 和 64 机器类型无关。 Windows 的标准 Visual C++ 项目通常似乎不使用它(它可能根本没有使用)。感谢 BTJ 提出这一点。

    Visual Studio 的另一个注意事项:如果您在 64 位机器上运行 Visual Studio 并选择 Win32 vs x64 构建配置,您会注意到 WIN32 是为 Win32 构建配置定义的,但它不是为 x64 构建配置定义的。这不会影响对象/二进制机器目标,例如32 对 64。它的目的不明确。如果人们希望使用它来#ifdef 源代码的某些部分(针对 X86 与 X64 以不同方式编译)可能是为了方便,但同样,它与编译器目标的体系结构无关。对于编译器,目标架构由根据项目目标选择的“平台”选择的工具集决定。链接器也有/MACHINE arg e.g./机器:X86。

    关于visual-studio-2010 - 64位windows平台WIN32预处理器定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380340/

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