Erreur C4996 reçu lors de la compilation de sqlite.c dans Visual Studio 2013
J'ai porté à mon projet de Visual Studio 2012 à 2013 et sqlite.c pas de la compilation en elle. Je reçois cette erreur de compilation:
error C4996: 'GetVersionExA': was declared deprecated
error C4996: 'GetVersionExW' was declared deprecated
J'ai téléchargé la dernière version de sqlite pour s'assurer qu'il n'a pas été comptabilisée, mais il n'a pas. Je ne suis pas sûr de quoi faire à propos de cette erreur. Je n'ai fait aucune modification à la source; je suis tout simplement la création d'un projet et y compris sqlite.h et sqlite.c.
Merci.
- Avez-vous essayé de le compiler avec VS 2012 toolkit en VS 2013?
Vous devez vous connecter pour publier un commentaire.
C'est parce que SDL vérifier, essayer de désactiver SDL vérifie:
Fait C4996 est un avertissement, mais parfois il se comporte comme une erreur.
De toute façon, vous pouvez simplement désactiver, à l'aide de la /wd4996 option de compilateur, ou d'utiliser le pragma:
J'ai eu un problème similaire en essayant d'utiliser WTL dans un VS 2013 C++ application. Essayez de changer la
Platform Toolset
dans leGeneral
page des paramètres de votre projet àVisual Studio 2013 - Windows XP (v120_xp)
.Mieux que la désactivation des mises en garde, vous pouvez simplement désactiver le code comme il est destiné à être désactivé par l'ajout dans le fichier du préprocesseur.
Clic droit sur sqlite3.c, cliquez sur Propriétés, les Propriétés de Configuration->C/C++->Préprocesseur. Assurez-vous d'avoir "toutes les configurations" sélectionné pour la configuration et la plate-forme de listes déroulantes (sauf si vous avez seulement une plate-forme, puis il suffit de sélectionner celui qui est disponible) et de modifier les Définitions de Préprocesseur pour être
Ce va sauter dans l'
NTDDI_VERSION
vérifier depuis que le symbole n'est pas défini ou n'est pas correctement défini lors de votre compilateur hits sqlite3.c.Il y a ce commentaire là, trop, ce qui peut être intéressant:
L'effet net du paramètre que
#define
est que votre système d'exploitation est toujours supposé être basé sur Win NT, qui il est, puisque vous êtes Win 8.1 ou Gagner 10 (ou plus). 😉Donc, fondamentalement, par la désactivation de l'avertissement que vous êtes tout simplement rendre votre code plus lent, car il a besoin pour faire le travail pour voir si il est sur WinNT ou pas.
J'ai eu le même problème et je viens de exclu sqlite3.c et sqlite3.h à partir du projet (dans l'Explorateur de solutions, cliquez droit dessus et sélectionnez Exclure Du Projet), puis inclus de nouveau (à droite cliquez sur nouveau et sélectionnez Inclure Dans le Projet). Et maintenant ça fonctionne...