私は最近、VS2011 ベータ版をインストールして、Microsoft がコンパイラの最新リリースに実装した新しい C++11 機能の感触をつかみました。
ただし、VS2010 の使用に戻ると、予期しない問題が発生しました。VS2010 で Windows SDK 7.1 サンプル プロジェクトを開きました。
VS2010でビルドすると、コード分析ツールが実行されていることを示す次の出力が得られます(コンパイル後、リンク前のようです)
1>------ Rebuild All started: Project: MFCaptureToFile, Configuration: Debug Win32 ------
1> winmain.cpp
1> capture.cpp
1> Running Code Analysis for C/C++...
1>capture.cpp(112): error C2220: warning treated as error - no 'object' file generated
1>c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\mediafoundation\mfcapturetofile\capture.cpp(105): warning C6309: Argument '3' is null: this does not adhere to function specification of 'IMFAttributes::GetAllocatedString'
1>c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\mediafoundation\mfcapturetofile\capture.cpp(105): warning C6387: 'argument 3' might be '0': this does not adhere to the specification for the function 'IMFAttributes::GetAllocatedString': Lines: 98, 103, 105
1>c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\mediafoundation\mfcapturetofile\capture.cpp(353): warning C6309: Argument '3' is null: this does not adhere to function specification of 'IMFAttributes::GetAllocatedString'
1>c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\mediafoundation\mfcapturetofile\capture.cpp(353): warning C6387: 'argument 3' might be '0': this does not adhere to the specification for the function 'IMFAttributes::GetAllocatedString': Lines: 336, 338, 340, 343, 351, 353
1>C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\ks.h(53): error C2220: warning treated as error - no 'object' file generated
1>c:\program files\microsoft sdks\windows\v7.1\include\ks.h(53): warning C6244: Local declaration of 'GUID_NULL' hides previous declaration at line '28' of 'c:\program files\microsoft sdks\windows\v7.1\include\cguid.h'
1> Generating Code...
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
プロジェクトのどの変更が原因でコード分析ツールが実行されたかを特定しようとしましたが、プロジェクトのプロパティに何も見つかりません。VS2011 でプロジェクトをリロードしようとしましたが、オフにできるコード分析のオプションはありません ( MSDN で提案されているように)。
プロジェクトは完全にネイティブな C++ です。CLR で C++ を使用したことはありません。
さらに、他のプロジェクト (自分のプロジェクト) を開こうとしたところ、このコード分析ステージも呼び出されています。これにより、多くの場合、Microsoft コードの問題によりビルドが妨げられます! ビルドは VS2011 ベータ版で成功しているようです。
このコード分析ツールをオフにする方法について、誰か洞察を提供できますか? VS2011 ベータ版はインストールしたままにしておきたいので、アンインストールが唯一の選択肢でない限り、アンインストールの提案は控えてください。