Cómo usar _CRT_SECURE_NO_WARNINGS

Tengo un error de comstackció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 comstack 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