5

私は最近、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 ベータ版はインストールしたままにしておきたいので、アンインストールが唯一の選択肢でない限り、アンインストールの提案は控えてください。

4

1 に答える 1

12

VS2010 Ultimate だけがコード解析をサポートしていると思います。私は VS2012 を持っていませんが、vcxproj ファイルを手動で編集する必要があると思います。

<RunCodeAnalysis>true</RunCodeAnalysis>プロジェクト ファイル内に存在する場合は、これらのパラメーターのいずれかまたは両方を探します。 <EnablePREfast>true</EnablePREfast>

両方の値を に変更するfalseと、機能するはずです。

これらの名前は VS2010 で使用されていることに注意してください。VS2012 で変更されたかどうかはわかりません。

于 2012-06-07T13:14:01.657 に答える