9
votes

Windows.h déjà inclus d'erreur


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

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

Une raison pour laquelle?


0 commentaires

6 Réponses :


1
votes

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.


2 commentaires

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 ()?



15
votes

raison pour laquelle c'est parce que quelque chose est y compris Windows.h: le compilateur ne vous ment pas.

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


1 commentaires

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.



9
votes

Essayez et inclure AFXColl.h avant stdafx.h . 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.


1 commentaires

y compris afxcol.h avant Atlstr.h dans mon fichier STDAFX.H fixe le problème pour moi



3
votes
#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.

0 commentaires

1
votes

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 utiliser (/ yu) .

Ce paramètre "active la création ou l'utilisation d'un en-tête précompilé lors de la construction".


0 commentaires

0
votes

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 ".


0 commentaires