visual studio preprocesamiento directivas c++ visual-studio precompiler

c++ - preprocesamiento - Elimine las advertencias de seguridad(_CRT_SECURE_NO_WARNINGS) de los proyectos de forma predeterminada en Visual Studio



include c++ visual studio (5)

Marque todos los proyectos deseados en el explorador de soluciones.

Presione Alt-F7 o haga clic con el botón derecho en el explorador de soluciones y seleccione "Propiedades"

Configuraciones: todas las configuraciones

Haga clic en la línea Definiciones de preprocesador para invocar su editor

Elige Editar ...

Copie "_CRT_SECURE_NO_WARNINGS" en el cuadro blanco Definiciones de preprocesador en la parte superior.

¿Hay alguna manera de establecer de forma predeterminada para todos los proyectos la eliminación de las advertencias de seguridad 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 #define _CRT_SECURE_NO_WARNINGS al comienzo del código.

Me encuentro constantemente creando 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 empiezo un nuevo proyecto.


No automáticamente, no. Puede crear una plantilla de proyecto como BlueWanderer sugirió o crear una hoja de propiedades personalizada que puede usar para sus proyectos actuales y futuros.

  1. Abra el Administrador de propiedades (Ver-> Administrador de propiedades)
  2. En el administrador de propiedades, haga clic derecho en su proyecto y seleccione "Agregar nueva hoja de propiedades del proyecto"
  3. Dale un nombre y créalo en un directorio común. La hoja de propiedades se agregará a todos los objetivos de compilación.
  4. Haga clic derecho en la nueva hoja de propiedades y seleccione "Propiedades". Esto abrirá las propiedades y le permitirá cambiar la configuración de la misma manera que lo haría si las estuviera editando para un proyecto.
  5. Vaya a "Propiedades comunes-> C / C ++ -> Preprocesador"
  6. Edite la configuración "Definiciones de preprocesador" y agregue _CRT_SECURE_NO_WARNINGS .
  7. Guarde y listo.

Ahora, cada vez que creas un nuevo proyecto, agrega esta hoja de propiedades como ...

  1. Abra el Administrador de propiedades (Ver-> Administrador de propiedades)
  2. En el administrador de propiedades, haga clic derecho en su proyecto y seleccione "Agregar una hoja de propiedades del proyecto existente"

El beneficio aquí es que no solo obtiene un lugar único para administrar configuraciones comunes, sino que cada vez que cambia la configuración, se propaga a TODOS los proyectos que lo usan. Esto es útil si tiene muchas configuraciones como _CRT_SECURE_NO_WARNINGS o bibliotecas como Boost que quiere usar en sus proyectos.


Puede haber sido porque todavía soy nuevo en VS y definitivamente nuevo en C, pero lo único que me permitió construir fue agregar

#pragma warning(disable:4996)

En la parte superior de mi archivo, esto suprimió el error C4996 que estaba recibiendo 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


Todas las soluciones aquí no funcionaron en mi VS2013, sin embargo puse #define _CRT_SECURE_NO_WARNINGS en stdafx.h justo antes del #pragma once y todas las advertencias fueron suprimidas. Nota: Solo codigo para prototipos a fin de respaldar mi investigación, así que asegúrese de comprender las implicaciones de este método al escribir su código.

Espero que esto ayude


mis dos centavos para VS 2017:

Puedo confirmar que funciona en stdafx.h ambos en estos estilos:

un)

#pragma once #define _CRT_SECURE_NO_WARNINGS 1 #define _WINSOCK_DEPRECATED_NO_WARNINGS 1

segundo)

#define _CRT_SECURE_NO_WARNINGS 1 #define _WINSOCK_DEPRECATED_NO_WARNINGS 1 #pragma once

(He agregado otra definición para las llamadas de red de MSDN ...) Por supuesto que prefiero a).

Puedo confirmar que: #define _CRT_SECURE_NO_WARNINGS (sin un valor) NO FUNCIONA.

PD: el verdadero punto es poner estos define ANTES de las declaraciones de funciones, es decir, antes de * .h