Windows ドライバー プロジェクトを からVS 2005
に移行していますVS 2012
。多くのマクロ再定義の警告がVS 2012
like で生成されます -
....
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 に同梱されている にはこれらのマクロが含まれています。したがって、ドライバと 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
....
VS 2012 で使用できるように、#if
これらのマクロに関するディレクティブはありません。この問題の回避策はありますか?sal.h
#undef
ありがとう。