【发布时间】:2014-10-01 19:53:20
【问题描述】:
因为intsafe.h 和stdint.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 中修复该警告。
【问题讨论】:
-
不要同时包含两个文件,或者在包含第二个文件之前先#undef。你会遇到的问题是,如果他们没有以同样的方式定义它。
-
这是两个文件中的定义:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(76):#define INT8_MAX 0x7f C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\intsafe.h(167):#define INT8_MAX 127i8
-
我在构建 C++ ATL COM dll 时收到了类似的警告,在从
stdafx.h文件中删除#include <afxframewndex.h> #include <afxmdiframewndex.h>包含语句后,我没有收到任何此类警告
标签: c++ visual-studio-2010 macros visual-studio-macros