Si se instala una nueva copia de Windows 7 y Visual Studio 2010 Premium SP1, crear una "aplicación de consola de C++" generado por el asistente y añadir 3 jefes en el fichero de .cpp
:¿Cómo usar correctamente el "análisis de código" en Visual Studio 2010 para C++?
#include <winsock2.h>
#include <WS2tcpip.h>
#include <wspiapi.h>
Ejecución "Análisis de código de ejecución" me va a mostrar advertencias en código de Microsoft (proyecto en sí es generado por el asistente, así que no hay errores):
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\ws2tcpip.h(729): warning C6386: Buffer overrun: accessing 'argument 1', the writable size is '1*4' bytes, but '4294967272' bytes might be written: Lines: 703, 704, 705, 707, 713, 714, 715, 720, 721, 722, 724, 727, 728, 729
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wspiapi.h(294): warning C6386: Buffer overrun: accessing 'argument 1', the writable size is '1' bytes, but '1025' bytes might be written: Lines: 263, 264, 265, 267, 268, 270, 271, 273, 294
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wspiapi.h(236): warning C6387: '*pptResult' might be '0': this does not adhere to the specification for the function 'WspiapiQueryDNS': Lines: 263, 264, 265, 267, 268, 270, 271, 273, 294, 296
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wspiapi.h(687): warning C6387: 'argument 1' might be '0': this does not adhere to the specification for the function 'WspiapiLegacyFreeAddrInfo': Lines: 504, 505, 506, 507, 508, 509, 510, 512, 513, 514, 515, 516, 520, 528, 532, 538, 550, 551, 555, 556, 560, 563, 568, 575, 577, 578, 589, 591, 592, 593, 596, 598, 599, 600, 604, 607, 610, 611, 627, 662, 664, 680, 685, 687
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wspiapi.h(481): warning C6387: '*pptResult' might be '0': this does not adhere to the specification for the function 'WspiapiLegacyGetAddrInfo': Lines: 504, 505, 506, 507, 508, 509, 510, 512, 513, 514, 515, 516, 520, 528, 532, 538, 550, 551, 555, 556, 560, 563, 568, 575, 577, 578, 589, 591, 592, 593, 596, 598, 599, 600, 604, 607, 610, 611, 627, 662, 664, 680, 685, 687, 688, 691
Esto hace que el análisis de código inservible para grandes proyectos - consigo miles de advertencias en los archivos de cabecera de Microsoft y no puedo encontrar mis propias advertencias entre ellos :(. ¿Hay alguna forma de excluir el encabezado de Microsoft? s/SDK del análisis de código para que se pueda usar?
P.S. Sé que C++ no es un lenguaje bien soportado para Visual Studio, pero no puedo cambiar el idioma debido a proyectos existentes que necesito para apoyar y mejorar :(.
Gracias, esta completamente resuelto mi problema^_^ – grigoryvp
Esto fue muy útil. Gracias. Recibí una advertencia de una función de Windows que no era correcta. La advertencia decía que no podía especificar 0 como el parámetro # 3, pero en msdn dice que puedo hacerlo. – James