Je reçois une erreur lorsque vous essayez de compiler un petit programme C ++
Erreur 87 Erreur fatale C1189: #Error: Windows.h déjà incluse. Les applications MFC ne doivent pas #incluez c: \ Program Files \ Microsoft Visual Visual Studio 9.0 \ VC \ ATLMFC \ INCLUDE \ AFXV_W32.H 16 P>
Je me suis assuré que le Windows.h n'était inclus dans aucun des fichiers de projet que j'ai. J'utilise un Studio Visual Studio 2008 IDE P>
Une raison pour laquelle? p>
6 Réponses :
Visual Studio Par défaut Définira votre programme avec un fichier d'en-têtes précompilé, qui peut contenir quelque chose qui inclut quelque chose qui comprend Windows.h. Assurez-vous d'enregistrer là-bas. P>
constaté que, y compris Afxwin.h jetait l'erreur. Cependant, j'ai besoin d'Afxwin.h pour la fonction AfxgetinstanceHandle () que j'utilise ... Y a-t-il une solution de contournement?
Utilisez-vous des en-têtes précompilés? Si oui, ne pouvez-vous pas simplement #incluez "stdafx.h" pour tirer dans la déclaration d'AfxgetinstanceHandle ()?
raison pour laquelle c'est parce que quelque chose est em> y compris Windows.h: le compilateur ne vous ment pas. P>
aller à Propriétés Propriétés-> Propriétés de la configuration-> C / C ++ -> Avancé et défini Afficher inclut à Oui. Ensuite, Construisez et le compilateur vous montrera une liste avec chaque fichier inclus trouvé, et dans l'ordre qu'il le trouve, vous indiquez par la présente quel fichier inclut finalement Windows.h P>
Merci ! J'ai trouvé l'en-tête Afxwin.h pour inclure Windows.h. Cependant, j'ai besoin de cet en-tête pour l'AfxgetinstanceHandle que j'utilise. Donc, j'aurais besoin que cela soit inclus.
Essayez et inclure AFXColl.h strong> avant stdafx.h strong>. J'ai eu le même problème et cela lui a réparé. Voir http://social.msdn.microsoft. Com / Forums / en-US / VCGeneral / Fil / 2AB6862F-0D90-467A-B283-F62F6AF96FE / pour la discussion originale. P>
y compris afxcol.h b> avant Atlstr.h b> dans mon fichier STDAFX.H fixe le problème pour moi
#include "afxwin.h" // MFC core and standard components #include "afxext.h" // MFC extensions Adding these to my stdafx.h file sorted out that error..hope this helps someone else.
Dans votre projet, accédez aux propriétés de configuration -> C / C ++ -> en-têtes précompilés. Assurez-vous que le réglage de l'en-tête précompilé est défini sur Ce paramètre "active la création ou l'utilisation d'un en-tête précompilé lors de la construction". P>
Le problème que j'ai eu était le fichier "stdafx.h" est inclus dans le fichier "stdafx.h" et le nom du fichier dans la configuration Propriétés-> C / C ++ -> Les en-têtes précompilés n'ont jamais été mis à jour de "STDAFX. h "à" stdafx.h ". p>