2012-06-07 17 views
5

Recientemente instalé el VS2011 beta para tener una idea de las nuevas características de C++ 11 que Microsoft había implementado en la última versión de su compilador.Análisis del código VS2011

Tuve un problema inesperado cuando volví a usar VS2010. Abrí un proyecto de ejemplo de Windows SDK 7.1 en VS2010.

Ahora cuando construyo en VS2010, me sale el siguiente resultado, que indica que se está ejecutando una herramienta de análisis de código (al parecer después de la compilación, pero antes de enlazar)

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

He intentado determinar qué cambios al proyecto ha hecho que se ejecute la herramienta de análisis de código, pero no puedo encontrar nada en las propiedades del proyecto. He intentado volver a cargar el proyecto en VS2011, pero no hay ninguna opción para el análisis de código que pueda desactivar (as suggested on MSDN).

El proyecto es completamente ++ nativo C, nunca he utilizado C++ con CLR

Además, he intentado abrir otros proyectos (la mía) y ahora también están invocando esta etapa de análisis de código. Esto evita la construcción debido a problemas con el código de Microsoft en muchos casos. Las versiones parecen tener éxito en VS2011 beta.

¿Alguien puede darnos una idea de cómo desactivar esta herramienta de análisis de código? Espero dejar instalado VS2011 beta, así que por favor no sugiera desinstalarlo, a menos que sea la única opción.

Respuesta

12

Creo que solo VS2010 Ultimate admite el análisis de código. No tengo VS2012, pero creo que debería editar el archivo vcxproj manualmente.

buscar uno o ambos de estos parametros si es que existen dentro de su archivo de proyecto: <RunCodeAnalysis>true</RunCodeAnalysis> y <EnablePREfast>true</EnablePREfast>

Cambio ambos valores a false y debería funcionar.

Tenga en cuenta que estos nombres son utilizados por VS2010 y no estoy seguro si lo cambiaron en VS2012.

+9

Wow. Sabía que alguien habría visto este problema antes. Respuestas como estas son un tributo a cómo funciona el sitio. +1 – sehe

+0

+1 para conocimiento oscuro – thecoshman

+0

El análisis de código estático también se incluye en la edición Professional y Premium: https://www.microsoft.com/visualstudio/11/de-de/products/compare Los archivos de proyecto de VS2012 y VS2010 son totalmente compatibles, por lo que los nombres son los mismos. – habakuk

Cuestiones relacionadas