¿Hay alguna manera de establecer de forma predeterminada para todos los proyectos que eliminan las advertencias seguras del precompilador que aparecen cuando se utilizan funciones como scanf (). Descubrí que puede hacerlo agregando una línea en la opción del proyecto o una #define _CRT_SECURE_NO_WARNINGS
al comienzo del código.
Me encuentro creando repetidamente nuevos proyectos para resolver concursos de programación y es realmente molesto (y toma un tiempo valioso) agregar:
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
Al comienzo del código, o para configurarlo en las opciones del precompilador cada vez que inicio un nuevo proyecto.
c++
visual-studio
precompiler
Juan martinez
fuente
fuente
Respuestas:
Marque todos los proyectos deseados en el explorador de soluciones.
Presione Alt-F7 o haga clic derecho en el explorador de soluciones y seleccione "Propiedades"
Configuraciones: todas las configuraciones
Haga clic en la línea de Definiciones de preprocesador para invocar su editor
Elija Editar ...
Copie "_CRT_SECURE_NO_WARNINGS" en el cuadro blanco Definiciones de preprocesador en la parte superior.
fuente
Puede haber sido porque todavía soy nuevo en VS y definitivamente nuevo en C, pero lo único que me permitió construir fue agregar
En la parte superior de mi archivo, esto suprimió el error C4996 que recibía con sprintf
Un poco molesto pero perfecto para mi pequeño código y, con mucho, el más fácil.
Lo leí aquí: https://msdn.microsoft.com/en-us/library/2c8f766e.aspx
fuente
#pragma warning(push)
/ en su#pragma warning(pop)
lugar.No automáticamente, no. Puede crear una plantilla de proyecto como BlueWandered sugirió o crear una hoja de propiedades personalizada que puede usar para sus proyectos actuales y futuros.
_CRT_SECURE_NO_WARNINGS
.Ahora, cada vez que cree un nuevo proyecto, agregue esta hoja de propiedades así ...
El beneficio aquí es que no solo obtienes un solo lugar para administrar configuraciones comunes, sino que cada vez que cambias las configuraciones se propagan a TODOS los proyectos que lo usan. Esto es útil si tiene muchas configuraciones
_CRT_SECURE_NO_WARNINGS
o bibliotecas como Boost que desea usar en sus proyectos.fuente
Todas las soluciones aquí no funcionaron en mi VS2013, sin embargo, puse
#define _CRT_SECURE_NO_WARNINGS
el stdafx.h justo antes de que#pragma once
se eliminaran todas las advertencias. Nota: Solo codifico con fines de creación de prototipos para apoyar mi investigación, así que asegúrese de comprender las implicaciones de este método al escribir su código.Espero que esto ayude
fuente
stdafx.h
ubicadomis dos centavos para VS 2017:
Puedo confirmar que funciona en stdafx.h en ambos estilos:
una)
si)
(He agregado otra definición para llamadas de red MSDN ...) Por supuesto que prefiero a).
Puedo confirmar que: #define _CRT_SECURE_NO_WARNINGS (sin un valor) NO FUNCIONA.
PD: el punto real es poner estas definiciones ANTES de las declaraciones de funciones, es decir, antes *.
fuente
simplemente copie " _CRT_SECURE_NO_WARNINGS " y péguelo en proyectos-> propiedades-> c / c ++ -> preprocesador-> definiciones de preprocesador, haga clic en Aceptar. Funcionará
fuente
Si su proyecto no usa stdafx.h, puede poner las siguientes líneas como las primeras líneas en su archivo .cpp y la advertencia del compilador debería desaparecer, al menos para mí en Visual Studio C ++ 2008.
Está bien tener comentarios y líneas en blanco delante de ellos.
fuente
Aunque puede agregar _CRT_SECURE_NO_WARNINGS a las propiedades de su proyecto, la forma más fácil es usar stdafx.h para cualquier tipo de advertencia y deshabilitación de errores, solo asegúrese de colocar la siguiente línea (y similar) ANTES
Además, no es necesario definir un valor (es decir, "1") para _CRT_SECURE_NO_WARNINGS siempre que esté definido. Entonces debería verse así:
fuente
#pragma once
está definido por la implementación, pero sigue el estándar de facto común en Visual Studio. Si hace una diferencia para usted, ya sea que haya definido el símbolo del preprocesador delante del pragma o después de él, entonces tiene una configuración de proyecto interrumpida (esto supone, indebidamente, que está equiparando "encabezados precompilados" y "stdafx.h " ).