由于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中修复该警告。
答案 0 :(得分:4)
显然这是VS2010中的一个错误。一般情况下可以避免它,但在MFC应用程序中,基本上不可能在任何其他代码中包含stdint.h而不用它。
我刚刚在抱怨的文件顶部做了这个:
#pragma warning (push)
#pragma warning (disable : 4005)
#include <intsafe.h>
#include <stdint.h>
#pragma warning (pop)
它可以让那些标题“脱离”,可以说让你继续一天。
答案 1 :(得分:1)
为了简单地消息消失,您可以添加行
#pragma warning (disable : 4005)
在您的第一个#include
声明之前
但这并不意味着你不应该留意警告。看看你是否可以不使用两个头文件中的一个,如果没有,请确定你的程序正在使用哪个定义。