我正在将一个 Windows 驱动程序项目VS 2005
从VS 2012
. 许多宏重新定义警告会在以下位置生成VS 2012
-
....
1>C:\WINDDK\7600.16385.1\inc\api\sal.h(707): warning C4005: '__format_string' :
macro redefinition
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\sal.h(2860) :
see previous definition of '__format_string'
.....
它与 VS 2005 一起编译得很好,sal.h
因为它没有宏__format_string
和其他。但是,sal.h
VS 2012 附带的有这些宏。因此,驱动程序与 VS 2012sal.h
的标准之间存在冲突。sal.h
#define __format_string // With DDK
#define __format_string _Printf_format_string_ // On VS 2012
我不能忽略标准标题,因为它们在构建过程中使用。
....
1> Note: including file: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\string.h
1> Note: including file: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h
....
没有#if
关于这些宏的指令,sal.h
因此我可以#undef
在 VS 2012 中使用它。这个问题有什么解决方法吗?
谢谢。