5

我最近安装了 VS2011 测试版,以感受微软在其最新版本的编译器中实现的新 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++,我从未将 C++ 与 CLR 一起使用

此外,我尝试打开其他项目(我自己的),现在他们也在调用这个代码分析阶段。这可以防止在许多情况下由于 Microsoft 代码问题而构建!构建似乎在 VS2011 beta 中成功。

谁能提供有关如何关闭此代码分析工具的见解?我希望保持 VS2011 beta 的安装状态,所以请不要建议卸载它,除非它是唯一的选择!

4

1 回答 1

12

我认为只有 VS2010 Ultimate 支持代码分析。我没有 VS2012,但我认为您应该手动编辑 vcxproj 文件。

如果它们存在于您的项目文件中,则查找其中一个或两个参数: <RunCodeAnalysis>true</RunCodeAnalysis><EnablePREfast>true</EnablePREfast>

将这两个值都更改为false它应该可以工作。

请注意,这些名称由 VS2010 使用,我不确定他们是否在 VS2012 中更改了它。

于 2012-06-07T13:14:01.657 回答