Pourquoi Visual Studio 2013 erreur sur C4996?

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

erreur inattendue

Erreur C4996: '_sleep': cette fonction ou variable a été remplacée par la nouvelle bibliothèque ou la fonctionnalité du système d'exploitation. Pensez à utiliser Dormir à 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 c'est extrêmement ennuyeux que VS essaie de me forcer à utiliser d'autres fonctions. Est-il possible de désactiver ce comportement?

Avant de demander, "traiter les Avertissements comme des erreurs" est désactivé, et il y a des erreurs même si je désactive tous les Avertissements!

47
demandé sur Stoogy 2013-12-08 03:39:50

5 réponses

Apparemment, les nouveaux projets activent" SDK check " par défaut maintenant, ce qui traite ces avertissements comme des erreurs. Pour le désactiver, allez dans Propriétés du projet - > Propriétés de Configuration - > C / C++ - > général - > vérifications SDL - > Non.

68
répondu Nikolai 2013-12-07 23:45:11

Vous pouvez également désactiver les numéros d'avertissement spécifiques dans C / C++ > avancé > désactiver les avertissements spécifiques.

4
répondu Peter Tseng 2014-06-17 16:13:59

Entrez au début du programme:

#pragma warning(disable : 4996)

Et c'est tout.

2
répondu ניתאי דרעי 2018-02-27 19:16:27

Projet - > Propriétés nom_projet - > propriétés de Configuration - > C / C++ - > préprocesseur - > définitions préprocesseur - > modifier... ajouter une ligne _CRT_SECURE_NO_WARNINGS

0
répondu Adam G. 2017-01-05 20:55:20

Compiler toutes les sources que j'ai mentionnées:

Supprimer les Avertissements sécurisés (_CRT_SECURE_NO_WARNINGS) des projets par défaut dans Visual Studio

Réponse de Kmcnamee sur Comment utiliser use _crt_secure_no_warnings

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

Apparemment, le cycle de vie du développement de la sécurité (SDL) a recommandé des vérifications qui incluent l'activation de fonctionnalités de génération de code sécurisé supplémentaires et Avertissements pertinents pour la sécurité en tant qu'erreurs.

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

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
répondu xAditya3393 2017-09-26 09:45:32