Existe-t-il un moyen de définir par défaut pour tous les projets la suppression des avertissements sécurisés du précompileur lors de l’utilisation de fonctions telles que scanf (). J'ai trouvé que vous pouvez le faire en ajoutant une ligne dans l'option de projet ou un #define _CRT_SECURE_NO_WARNINGS
au début du code.
Je me retrouve souvent à créer de nouveaux projets pour résoudre des concours de programmation et il est vraiment ennuyant (et prend un temps précieux) d'ajouter:
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
Au début du code, ou pour le définir dans les options du précompilateur à chaque fois que je démarre un nouveau projet.
Marquez tous les projets souhaités dans l'explorateur de solutions.
Appuyez sur Alt-F7 ou faites un clic droit dans l'explorateur de solutions et sélectionnez "Propriétés".
Configurations: Toutes les configurations
Cliquez sur la ligne Preprocessor Definitions pour appeler son éditeur.
Choisissez Modifier ...
Copiez "_CRT_SECURE_NO_WARNINGS" dans la zone blanche Définitions du préprocesseur en haut.
C’est peut-être parce que je suis encore nouveau sur VS et certainement nouveau sur C, mais la seule chose qui m’ait permis de construire était l’ajout de
#pragma warning(disable:4996)
En haut de mon fichier, cela supprimait l'erreur C4996 que je rencontrais avec sprintf
Un peu ennuyeux mais parfait pour mon tout petit peu de code et de loin le plus facile.
Je lis à ce sujet ici: https://msdn.Microsoft.com/en-us/library/2c8f766e.aspx
Pas automatiquement, non. Vous pouvez créer un modèle de projet en tant que BlueWandered suggestion ou créer une feuille de propriétés personnalisée que vous pouvez utiliser pour vos projets actuels et futurs.
_CRT_SECURE_NO_WARNINGS
.Maintenant, chaque fois que vous créez un nouveau projet, ajoutez cette feuille de propriétés comme suit ...
L'avantage ici est que non seulement vous disposez d'un emplacement unique pour gérer les paramètres communs, mais à chaque fois que vous modifiez les paramètres, ils sont transmis à TOUS les projets qui l'utilisent. C'est pratique si vous avez beaucoup de paramètres comme _CRT_SECURE_NO_WARNINGS
ou des bibliothèques comme Boost que vous voulez utiliser dans vos projets.
Toutes les solutions ici n'ont pas fonctionné sur mon VS2013, cependant, j'ai placé le #define _CRT_SECURE_NO_WARNINGS
dans le fichier stdafx.h juste avant le #pragma once
et tous les avertissements ont été supprimés. Remarque: Je code uniquement à des fins de prototypage afin de soutenir mes recherches. Assurez-vous donc de bien comprendre les implications de cette méthode lors de l'écriture de votre code.
J'espère que cela t'aides
mes deux cents pour VS 2017:
Je peux confirmer que cela fonctionne dans stdafx.h dans les styles suivants:
une)
#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
(J'ai ajouté une autre définition pour les appels réseau MSDN ..) .__ Bien sûr, je préfère un).
Je peux confirmer que: #define _CRT_SECURE_NO_WARNINGS (sans valeur) NE TRAVAILLE PAS.
PS le vrai point est de mettre ces définit AVANT les déclarations de fonctions, c'est-à-dire avant * .h
Même si vous pouvez ajouter _CRT_SECURE_NO_WARNINGS aux propriétés de votre projet, le moyen le plus simple consiste à utiliser stdafx.h pour tout type d’avertissement et de désactivation d’erreur, assurez-vous de placer la ligne suivante (et similaire) AVANT
#pragma once
De plus, il n'est pas nécessaire de définir une valeur (c'est-à-dire "1") pour _CRT_SECURE_NO_WARNINGS tant qu'elle est définie. Cela devrait donc ressembler à ceci:
#define _CRT_SECURE_NO_WARNINGS
#pragma once
copiez simplement "_ CRT_SECURE_NO_WARNINGS" et collez-le sur projets-> propriétés-> c/c ++ -> préprocesseur> définitions du préprocesseur cliquez sur ok.it fonctionnera
Si votre projet n'utilise pas stdafx.h, vous pouvez insérer les lignes suivantes en tant que premières lignes de votre fichier .cpp. L'avertissement du compilateur doit disparaître.
#ifdef _CRT_SECURE_NO_WARNINGS
#undef _CRT_SECURE_NO_WARNINGS
#endif
#define _CRT_SECURE_NO_WARNINGS 1
C'est bien d'avoir des commentaires et des lignes vides devant eux.