gpt4 book ai didi

c++ - VS2012 C++ 警告 C4005 : '__useHeader' : macro redefinition

转载 作者:IT老高 更新时间:2023-10-28 12:46:42 24 4
gpt4 key购买 nike

在将旧 C++ 项目从 Visual Studio 6 迁移到 Visual Studio 2012 时,我们在标准 Microsoft 平台 header 中遇到了一组奇怪的警告:

  • 警告 C4005:“__useHeader”:宏重新定义
  • 警告 C4005:“__on_failure”:宏重新定义

在线搜索仅发现少数其他人遇到此错误。在某些情况下,有人试图使用 VS2012 来编译旧版 DirectX 代码——我没有这样做。在其他情况下,有人试图使用 VS2012 来针对 Windows XP(使用更新 1 中的新选项)——我正在这样做。

已回答 DirectX 问题,警告将始终存在,告诉您正在使用过时(Win8 之前)版本的 DirectX 进行编译,您只需要忍受它。

没有回答 Windows XP 问题。其他人只是说他们无法重现问题。

我复制了它,并找到了原因,我在这里写下它以帮助遇到此问题的其他人。

最佳答案

进入项目属性,找到“预处理器定义”字段。

除了默认和添加的定义常量之外,您应该会看到一个宏:

%(PreprocessorDefinitions)

这个宏显然引入了一些额外的编译器提供的预处理器定义。我不确定 Visual Studio 的哪个版本引入了这个宏,但它在 Visual Studio 6 中没有

在 Visual Studio 2012 中,此宏必须出现在项目的预处理器定义字段中。在早期版本的 Visual Studio 中也可能需要它,但我没有测试过这些。

如果缺少此宏,您将看到如上所示的错误消息。

关于c++ - VS2012 C++ 警告 C4005 : '__useHeader' : macro redefinition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363929/

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