c++ - 修复 C++ 中的宏重新定义

标签 c++ visual-studio-2010 macros visual-studio-macros

因为 intsafe.hstdint.h 都定义了 INT8_MIN。因此 VS2010 会生成一条警告:

    1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(72): warning C4005: 'INT8_MIN' : macro redefinition
1>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\intsafe.h(144) : see previous definition of 'INT8_MIN'

有没有办法在 VS2010 中修复该警告。

最佳答案

显然这是 VS2010 中的错误。一般来说,您可以避免它,但在 MFC 应用程序中,基本上不可能在您的任何其他代码中包含 stdint.h 而不命中它。

我只是在提示的文件顶部这样做:

#pragma warning (push)
#pragma warning (disable : 4005)
#include <intsafe.h>
#include <stdint.h>
#pragma warning (pop)

可以这么说,它让那些 header “不碍事”,让您继续新的一天。

关于c++ - 修复 C++ 中的宏重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25201724/

相关文章:

c++ - 在 C++ 中,从 void 函数返回另一个 void 函数是否合法?

c++ - 错误LNK2019,如何解决? *更新*

c++ - 定义宏以从一个值创建两个参数

c - 如何在没有函数调用和宏的情况下填充指针数组?

xcode - 是否有 Xcode 在调试版本中自动设置的宏?

c++ - 如何在 Visual Studio 中使用 C++ shlwapi 库?

c++ - 如果我将一个无符号整数与一个负整数相加并且算术结果为正,会发生什么情况?

c++ - 如何在C++中将附加字符连接到字符串

c# - 许多 WebReferences 使用相同的类

.net - MSTest 测试方法依赖注入(inject)