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.