Bonjour,
targetver.h est un fichier d'en-tête contenant quelques directives de compilation en fonction de la version de Windows cible de l'application. Les versions les + anciennes de Windows n'ont pas autant de fonctions ou légèrement différentes que les versions plus récentes. La directive _WIN32_WINNT permet de choisir quelle version on cible.
_WIN32_WINNT_ indique la version minimale de l'API win32 voulue.
stdafx.h et stdafx.cpp servent pour la précompilation des en-têtes. C'est une optimisation de la compilation. En contrepartie,
tout tes fichiers sources
doivent commencer par inclure cet en-tête (ou spécifier dans les propriétés du projet qu'ils n'utilisent pas l'en-tête précompilé). Cf
F.A.Q.. C'est à cause de cela que tu as ton premier avertissement et l'erreur.
Pour scanf, le message me semble explicite. C'est une fonction jugée comme présentant des failles de sécurité. Le compilateur t'avertit du problème et te suggère d'utiliser une version maison de microsoft, scanf_s. Cette fonction n'est pas standard. Personnellement, je te suggère d'utiliser les flux C++ et les fonctions associées.
Enfin, pour finir, si tu dois utiliser ta classe voiture dans main, et bien oui, il faut inclure le fichier d'en-tête pour que la classe soit connue au moment où tu veux l'utiliser. Chaque fichier source est compilé séparément, le compilateur ne garde pas en mémoire les définitions ni les déclarations entre 2 compilations successives de 2 fichiers différents. C'est pourquoi chaque fichier source doit explicitement inclure les fichiers d'en-têtes contenant la déclaration des symboles qu'il veut utiliser.
Partager