web-dev-qa-db-fra.com

Pourquoi l'erreur Visual Studio 2013 sur C4996?

Dans les versions précédentes de Visual Studio, l'utilisation de fonctions telles que _sleep ou strncpy générait simplement un avertissement. Dans la dernière version, c'est tout à coup une erreur:

unexpected error

erreur C4996: '_sleep': cette fonction ou cette variable a été remplacée par une bibliothèque plus récente ou une fonctionnalité du système d'exploitation plus récente. Pensez à utiliser Sleep à la place. Voir l'aide en ligne pour plus de détails.

Je sais que je peux le désactiver en ajoutant #pragma warning(disable: 4996) au début du code, mais il est extrêmement ennuyeux que VS essaie de me forcer à utiliser d'autres fonctions. Est-il possible de désactiver ce comportement?

Avant que vous ne demandiez, "Traiter les avertissements comme des erreurs" est désactivé et même si je désactive tous les avertissements!

51
Nikolai

Apparemment, les nouveaux projets activent maintenant par défaut la "vérification SDK", qui traite ces avertissements comme des erreurs. Pour le désactiver, accédez à Propriétés du projet -> Propriétés de configuration -> C/C++ -> Général -> Contrôles SDL -> Non.

70
Nikolai

entrez au début du programme:

#pragma warning(disable : 4996)

et c'est tout.

8
ניתאי דרעי

Vous pouvez également désactiver des numéros d'avertissement spécifiques dans C/C++> Avancé> Désactiver des avertissements spécifiques.

5
Peter Tseng

Projet -> Propriétés nom_projet -> Propriétés de configuration -> C/C++ -> Préprocesseur -> Définitions du préprocesseur -> Éditer ... ajouter une ligne _CRT_SECURE_NO_WARNINGS

1
Adam G.

Compiler toutes les sources que j'ai référées:

Supprimez les avertissements sécurisés (_CRT_SECURE_NO_WARNINGS) des projets par défaut dans Visual Studio

la réponse de kmcnamee sur Comment utiliser l'utilisation de _CRT_SECURE_NO_WARNINGS

La vidéo qui a résolu mon problème. https://www.youtube.com/watch?v=qWxGZLjwKL

Apparemment, les vérifications SDL (Security Development Lifecycle) recommandent notamment d’activer des fonctionnalités supplémentaires de génération de code sécurisé et des avertissements supplémentaires relatifs à la sécurité en tant qu’erreurs.

Les étapes pour résoudre ce problème sont les suivantes:

1. Go to Project-> "your project name" Properties
2. Under Configuration Properties, go to C/C++
3. Under C/C++, go to Preprocessor 
4. Select Preprocessor Definitions and click on Edit from the dropdown menu
5. In the blank space fill out _CRT_SECURE_NO_WARNINGS
0
xAditya3393