我迁移了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'
.....
它编译罚款sal.h
随VS 2005,因为它不具备宏观__format_string
等。 然而, sal.h
随VS 2012具有这些宏。 因此,具有驾驶者之间的冲突sal.h
和标准sal.h
用VS 2012。
#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
它在2012年VS是否有解决有关此问题?
谢谢。