c++ visual-c++ visual-studio-2012 warnings

c++ - Cómo usar_CRT_SECURE_NO_WARNINGS



visual-c++ visual-studio-2012 (3)

Tengo un error de compilación en mi aplicación de ventana MFC simple generada desde el asistente con varias líneas de código:

error C4996: ''strncpy'': Esta función o variable puede ser insegura. Considera usar strncpy_s en su lugar. Para desactivar la desactivación, use _CRT_SECURE_NO_WARNINGS . Consulte la ayuda en línea para obtener detalles.

Establecí Configuration Properties>>C/C++>>Preporocessor>>Preprocessor Definitions>> _CRT_NONSTDC_NO_WARNINGS

Pero esto no ayuda. Tengo otro proyecto muy cerrado que genera solo advertencia en este lugar y no tiene la definición _CRT_NONSTDC_NO_WARNINGS .

La única diferencia entre proyectos es varias opciones diferentes en el asistente.

¿Por qué _CRT_NONSTDC_NO_WARNINGS no ayuda en el primer proyecto y por qué el segundo proyecto se compila sin problemas sin esta definición?


Agregar por

Propiedades de configuración >> C / C ++ >> Preporocessor >> Definiciones de preprocesador >> _CRT_SECURE_NO_WARNINGS


En "Proyecto -> Propiedades -> C / C ++ -> Preprocesador -> Definiciones del preprocesador", agregue _CRT_SECURE_NO_WARNINGS


Si está en Visual Studio 2012 o posterior, tiene una configuración adicional ''SDL comprueba'' en Páginas de propiedades -> C / C ++ -> General

Comprobaciones recomendadas del ciclo de vida de desarrollo de seguridad adicional (SDL); incluye la habilitación de funciones adicionales de generación segura de códigos y advertencias adicionales relevantes para la seguridad como errores.

Su valor predeterminado es SÍ - Por alguna razón, IE debería usar la versión segura de strncpy. Si cambia esto a NO, no obtendrá un error cuando use la versión insegura.

SDL comprueba en vs2012 y posterior