Existe-t-il un moyen de définir par défaut pour tous les projets la suppression des avertissements sécurisés du précompilateur qui apparaissent lors de l'utilisation de fonctions comme 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 à créer à plusieurs reprises de nouveaux projets pour résoudre des concours de programmation et il est vraiment ennuyeux (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.
c++
visual-studio
precompiler
Juan Martinez
la source
la source
Réponses:
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 Définitions du préprocesseur pour appeler son éditeur
Choisissez Modifier ...
Copiez "_CRT_SECURE_NO_WARNINGS" dans la zone blanche des définitions de préprocesseur en haut.
la source
C'est peut-être parce que je suis encore nouveau sur VS et définitivement nouveau sur C, mais la seule chose qui m'a permis de construire était d'ajouter
En haut de mon fichier, cela a supprimé l'erreur C4996 que j'obtenais avec sprintf
Un peu ennuyeux mais parfait pour mon tout petit bout de code et de loin le plus simple.
J'ai lu à ce sujet ici: https://msdn.microsoft.com/en-us/library/2c8f766e.aspx
la source
#pragma warning(push)
/ à la#pragma warning(pop)
place.Pas automatiquement, non. Vous pouvez créer un modèle de projet comme BlueWandered l'a suggéré 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 ceci ...
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 propagés à 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 souhaitez utiliser dans vos projets.la source
Toutes les solutions ici n'ont pas fonctionné sur mon VS2013, mais j'ai mis le
#define _CRT_SECURE_NO_WARNINGS
dans le stdafx.h juste avant le#pragma once
et tous les avertissements ont été supprimés. Remarque: Je ne code qu'à des fins de prototypage pour soutenir mes recherches, alors assurez-vous de bien comprendre les implications de cette méthode lors de l'écriture de votre code.J'espère que cela t'aides
la source
stdafx.h
situé?mes deux cents pour VS 2017:
Je peux confirmer que cela fonctionne dans stdafx.h à la fois dans ces styles:
une)
b)
(J'ai ajouté une autre définition pour les appels réseau MSDN ..) Bien sûr, je préfère a).
Je peux confirmer que: #define _CRT_SECURE_NO_WARNINGS (sans valeur) NE FONCTIONNE PAS .
PS le vrai point est de mettre ces définitions AVANT les déclarations de fonctions, c'est-à-dire avant * .h
la source
copiez simplement " _CRT_SECURE_NO_WARNINGS " collez-le sur les projets- > propriétés-> c / c ++ -> préprocesseur-> définitions de préprocesseur cliquez sur ok.it fonctionnera
la source
Si votre projet n'utilise pas stdafx.h, vous pouvez placer les lignes suivantes en tant que premières lignes dans votre fichier .cpp et l'avertissement du compilateur devrait disparaître - du moins, c'est le cas pour moi dans Visual Studio C ++ 2008.
Il est permis d'avoir des commentaires et des lignes vides devant eux.
la source
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 simplement de placer la ligne suivante (et similaire) AVANT
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. Il devrait donc ressembler à ceci:
la source
#pragma once
est défini par l'implémentation, mais suit la norme de facto courante dans Visual Studio. Si cela fait une différence pour vous, que vous ayez défini le symbole du préprocesseur avant le pragma ou après celui-ci, alors vous avez une configuration de projet cassée (cela suppose, que vous assimilez - indûment - "en-têtes précompilés" et "stdafx.h " ).