2012-06-07 3 views
5

Ich habe vor kurzem die Beta VS2011 installiert, um ein Gefühl für die neuen C++ 11-Funktionen zu bekommen, die Microsoft in der neuesten Version ihres Compilers implementiert hatte.VS2011 Code-Analyse

Ich hatte ein unerwartetes Problem bei der Verwendung von VS2010. Ich habe ein Windows SDK 7.1-Beispielprojekt in VS2010 geöffnet.

Nun, wenn ich in VS2010 bauen, bekomme ich die folgende Ausgabe, bezeichnet, dass ein Code-Analyse-Tool ausgeführt wird (scheinbar nach der Kompilierung, aber bevor die Verknüpfung)

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 ========== 

ich versucht habe zu bestimmen, was zu ändern zu dem Projekt hat Code-Analyse-Tool ausgeführt werden ausgeführt, aber ich kann nichts in den Projekteigenschaften finden. Ich habe versucht, das Projekt in VS2011 neu zu laden, aber es gibt keine Option für Code-Analyse, die ich ausschalten kann (as suggested on MSDN).

Das Projekt ist vollständig native C++, habe ich nie benutzt C++ mit CLR

Des Weiteren habe ich andere Projekte versucht zu öffnen (meine eigenen) und jetzt sind sie auch diesen Code Analysestufe aufgerufen wird. Dies verhindert in vielen Fällen den Aufbau aufgrund von Problemen mit Microsoft-Code! Builds scheinen in der Betaversion von VS2011 erfolgreich zu sein.

Kann jemand Einblick geben, wie man dieses Codeanalyse-Tool deaktiviert? Ich würde hoffen, VS2011 Beta installiert zu lassen, also bitte unterlassen, die Deinstallation vorzuschlagen, es sei denn, es ist die einzige Option!

Antwort

12

Ich denke nur VS2010 Ultimate unterstützt Code-Analyse. Ich habe keine VS2012, aber ich denke, Sie sollten die vcxproj-Datei manuell bearbeiten.

Geben Sie für eine oder beide dieser params, wenn sie innerhalb der Projektdatei vorhanden sind: <RunCodeAnalysis>true</RunCodeAnalysis> und <EnablePREfast>true</EnablePREfast>

Ändern Sie beide Werte auf false und es sollte funktionieren.

Bitte beachten Sie, dass diese Namen von VS2010 verwendet werden und ich unsicher bin, ob sie in VS2012 geändert wurden.

+9

Wow. Ich wusste, dass jemand dieses Problem schon einmal gesehen hätte. Antworten wie diese sind eine Hommage an die Funktionsweise der Website. +1 – sehe

+0

+1 für obskures Wissen – thecoshman

+0

Statische Code-Analyse ist auch in der Professional und Premium-Edition enthalten: https://www.microsoft.com/visualstudio/11/de-de/products/compare Die Projektdateien von VS2012 und VS2010 sind voll kompatibel, so dass die Namen identisch sind. – habakuk

Verwandte Themen