2012-06-07 24 views
5

Niedawno zainstalowałem wersję beta VS2011, aby poznać nowe funkcje C++ 11, które Microsoft wprowadził w najnowszej wersji swojego kompilatora.Analiza kodu VS2011

Miałem nieoczekiwany problem podczas powrotu do VS2010. Otworzyłem przykładowy projekt Windows SDK 7.1 w VS2010.

Teraz kiedy zbudować w VS2010, pojawia się następujący komunikat, oznaczający, że narzędzie analizy kodu jest wykonywany (pozornie po kompilacji, ale przed połączeniem)

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

Mam próbowali określić, jaki zmiany do projektu spowodowało uruchomienie narzędzia do analizy kodu, ale nie mogę znaleźć niczego we właściwościach projektu. Próbowałem przeładować projekt w VS2011, ale nie ma opcji analizy kodu, którą mogę wyłączyć (as suggested on MSDN).

Projekt jest całkowicie natywny C++, nigdy nie używałem C++ z CLR

Ponadto Próbowałem otwierania innych projektów (mój własny) i teraz jesteśmy również powołując się ten etap analizy kodu. Zapobiega to budowaniu z powodu problemów z kodem Microsoft w wielu przypadkach! Wydaje się, że buduje się pomyślnie w wersji beta VS2011.

Czy każdy może zaoferować wgląd w to, jak wyłączyć to narzędzie do analizy kodu? Mam nadzieję, że zostanę zainstalowany beta VS2011, więc proszę powstrzymać się od sugerowania odinstalowania go, chyba że jest to jedyna opcja!

Odpowiedz

12

Myślę, że tylko VS2010 Ultimate obsługuje analizę kodu. Nie mam VS2012, ale myślę, że powinieneś ręcznie edytować plik vcxproj.

Look dla jednego lub obu tych params jeżeli istnieją wewnątrz pliku projektu: <RunCodeAnalysis>true</RunCodeAnalysis> i <EnablePREfast>true</EnablePREfast>

zmienić zarówno wartości do false i powinno działać.

Należy pamiętać, że nazwy te są używane przez VS2010 i nie jestem pewien, czy zmieniły go w VS2012.

+9

Wow. Wiedziałem, że ktoś wcześniej widziałby ten problem. Odpowiedzi takie jak te są hołdem dla działania witryny. +1 – sehe

+0

+1 za nieznaną wiedzę – thecoshman

+0

Analiza kodu statycznego jest również uwzględniona w wersji Professional i Premium: https://www.microsoft.com/visualstudio/11/de-de/products/compare Pliki projektu VS2012 i VS2010 są w pełni kompatybilne, więc nazwy są takie same. – habakuk