it-swarm.com.de

Entfernen Sie sichere Warnungen (_CRT_SECURE_NO_WARNINGS) standardmäßig aus Projekten in Visual Studio

Gibt es eine Möglichkeit, für alle Projekte standardmäßig festzulegen, dass die sicheren Warnhinweise des Precompilers entfernt werden, die bei der Verwendung von Funktionen wie scanf () angezeigt werden. Ich habe festgestellt, dass Sie dies tun können, indem Sie eine Zeile in der Projektoption oder einen #define _CRT_SECURE_NO_WARNINGS am Anfang des Codes hinzufügen.

Ich finde immer wieder neue Projekte, um Programmierwettbewerbe zu lösen, und es ist wirklich ärgerlich (und braucht wertvolle Zeit), um Folgendes hinzuzufügen:

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

Am Anfang des Codes oder um ihn bei jedem Start eines neuen Projekts in den Precompiler-Optionen festzulegen.

155
Juan Martinez

Markieren Sie alle gewünschten Projekte im Lösungs-Explorer.

Drücken Sie Alt-F7 oder klicken Sie mit der rechten Maustaste in den Lösungs-Explorer und wählen Sie "Eigenschaften".

Konfigurationen: Alle Konfigurationen

Klicken Sie auf die Zeile Preprozessor-Definitionen, um den Editor aufzurufen

Wählen Sie Bearbeiten ...

Kopieren Sie "_CRT_SECURE_NO_WARNINGS" in das weiße Kontrollkästchen "Präprozessor-Definitionen".

enter image description here

242
user2548100

Möglicherweise lag ich daran, dass ich noch VS-Neulinge und definitiv C-Neuheiten bin, aber das einzige, was mir erlaubte, zu bauen, war Hinzufügen

#pragma warning(disable:4996)

Oben in meiner Datei wurde der C4996-Fehler, den ich mit sprintf bekam, unterdrückt

Ein bisschen nervig, aber perfekt für meinen winzigen Code und mit Abstand der einfachste.

Ich habe darüber hier gelesen: https://msdn.Microsoft.com/de-de/library/2c8f766e.aspx

70
Shaun314

Nicht automatisch, nein. Sie können eine Projektvorlage erstellen, indem Sie mit BlueWandered suggest oder ein benutzerdefiniertes Eigenschaftsblatt erstellen, das Sie für Ihre aktuellen und alle zukünftigen Projekte verwenden können.

  1. Öffnen Sie den Property Manager (Ansicht-> Property Manager)
  2. Klicken Sie im Eigenschaften-Manager mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Neues Projekteigenschaftenblatt hinzufügen".
  3. Vergeben Sie einen Namen und erstellen Sie ihn in einem gemeinsamen Verzeichnis. Das Eigenschaftsfenster wird allen Erstellungszielen hinzugefügt. 
  4. Klicken Sie mit der rechten Maustaste auf das neue Eigenschaftsfenster und wählen Sie "Eigenschaften". Dadurch werden die Eigenschaften geöffnet und Sie können die Einstellungen genauso ändern, als würden Sie sie für ein Projekt bearbeiten.
  5. Gehen Sie zu "Allgemeine Eigenschaften -> C/C++ -> Präprozessor".
  6. Bearbeiten Sie die Einstellung "Präprozessor-Definitionen" und fügen Sie _CRT_SECURE_NO_WARNINGS hinzu.
  7. Speichern Sie und Sie sind fertig.

Wenn Sie jetzt ein neues Projekt erstellen, fügen Sie dieses Eigenschaftenfenster wie folgt hinzu.

  1. Öffnen Sie den Property Manager (Ansicht-> Property Manager)
  2. Klicken Sie im Eigenschaften-Manager mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Vorhandenes Projekteigenschaftenblatt hinzufügen".

Der Vorteil hierbei ist, dass Sie nicht nur eine einzige Stelle für die Verwaltung allgemeiner Einstellungen erhalten, sondern immer dann, wenn Sie die Einstellungen ändern, die sie an ALLE Projekte weitergeben, in denen sie verwendet werden. Dies ist praktisch, wenn Sie viele Einstellungen wie _CRT_SECURE_NO_WARNINGS oder Bibliotheken wie Boost haben, die Sie in Ihren Projekten verwenden möchten.

22

Alle Lösungen hier funktionierten nicht auf meinem VS2013, jedoch stelle ich den #define _CRT_SECURE_NO_WARNINGS in stdafx.h vor den #pragma once und alle Warnungen wurden unterdrückt. Hinweis: Ich codiere nur für Prototyping-Zwecke, um meine Recherche zu unterstützen. Vergewissern Sie sich daher, dass Sie die Auswirkungen dieser Methode beim Schreiben Ihres Codes verstehen.

Hoffe das hilft

20
PDF417

meine zwei cents für VS 2017:

Ich kann bestätigen, dass es in stdafx.h in beiden Stilen funktioniert:

ein)

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1 
#define _WINSOCK_DEPRECATED_NO_WARNINGS 1 

b) 

#define _CRT_SECURE_NO_WARNINGS 1 
#define _WINSOCK_DEPRECATED_NO_WARNINGS 1 
#pragma once

(Ich habe ein weiteres Definitionsfeld für MSDN-Netzwerkanrufe hinzugefügt.) Natürlich bevorzuge ich a). 

Das kann ich bestätigen: #define _CRT_SECURE_NO_WARNINGS (ohne Wert) DOESNICHTWORK.

PS Der eigentliche Punkt ist, diese Definitionen vor Funktionsdeklarationen zu setzen, d. H. Vor * .h

10
ingconti

Obwohl Sie _CRT_SECURE_NO_WARNINGS zu den Eigenschaften Ihres Projekts hinzufügen können, ist es am einfachsten, stdafx.h für alle Arten von Warnungen und Fehlern zu verwenden. Stellen Sie einfach sicher, dass Sie die folgende (und ähnliche) Zeile VORHER einfügen

#pragma once

Es ist auch nicht erforderlich, einen Wert (d. H. "1") für _CRT_SECURE_NO_WARNINGS zu definieren, solange dieser definiert ist. Also sollte es so aussehen:

#define _CRT_SECURE_NO_WARNINGS 

#pragma once
0

kopieren Sie einfach "_ CRT_SECURE_NO_WARNINGS" und fügen Sie es ein Projekte-> Eigenschaften-> c/c ++ -> Präprozessor-> Präprozessordefinitionen Klicken Sie auf OK. Es wird funktionieren

0
Leninkumar

Wenn Ihr Projekt stdafx.h nicht verwendet, können Sie die folgenden Zeilen als erste Zeilen in Ihrer CPP-Datei einfügen, und die Warnung des Compilers sollte verschwinden - zumindest in Visual Studio C++ 2008.

#ifdef _CRT_SECURE_NO_WARNINGS
#undef _CRT_SECURE_NO_WARNINGS
#endif
#define _CRT_SECURE_NO_WARNINGS 1

Es ist in Ordnung, Kommentare und Leerzeilen vor ihnen zu haben.

0
R Sahu