IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Error C1189 #error: WINDOWS.H already included. MFC apps must not #include <windows.h>


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut Error C1189 #error: WINDOWS.H already included. MFC apps must not #include <windows.h>
    Bonjour,

    Je suis actuellement en train de remettre une DLL sous Visual Studio 2015 en place et je rencontre une erreur que je n'arrive pas à résoudre qui est : "Error C1189 #error: WINDOWS.H already included. MFC apps must not #include <windows.h>"

    L'erreur est trouvé dans le ficher "afxv_w32.h" -->

    #ifdef _WINDOWS_
    #error WINDOWS.H already included. MFC apps must not #include <windows.h> //l'erreur et repéré ici sur Visual studio
    #endif

    J'ai fait le tour des forum sur le net mais je n'est absolument rien trouve pour réglé mon problème, donc si quelqu'un à déjà rencontré ce problème ou a la solution magique sa serait géniale.

    Merci d'avance

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Salut!

    Tu es en MFC, il faut donc inclure afx.h, et non Windows.h.

    Généralement, un projet MFC est créé (via Visual Studio) avec un fichier de precompiled headers: stdafx.h.
    C'est dans ce fichier qu'il te faut vérifier cela.

    Si tu as créé ton projet manuellement, tu devrais savoir où tu as fait cet inclusion malheureuse.

    Une autre source peut venir d'un fichier qui inclue Windows.h à ton insu.
    Je te conseille alors de t'assurer que l'inclusion de afx.h soit faite avant toutes celles de bibliothèques externes (hors STL, qui n'inclue pas Windows.h).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Un workaround pourrait être de désactiver les en-têtes précompilées. Un habitué des subtilités de Visual Studio pourrait par la suite te fournir une vraie solution.
    -- Yankel Scialom

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Salut!

    Tu es en MFC, il faut donc inclure afx.h, et non Windows.h.

    Généralement, un projet MFC est créé (via Visual Studio) avec un fichier de precompiled headers: stdafx.h.
    C'est dans ce fichier qu'il te faut vérifier cela.

    Si tu as créé ton projet manuellement, tu devrais savoir où tu as fait cet inclusion malheureuse.

    Une autre source peut venir d'un fichier qui inclue Windows.h à ton insu.
    Je te conseille alors de t'assurer que l'inclusion de afx.h soit faite avant toutes celles de bibliothèques externes (hors STL, qui n'inclue pas Windows.h).
    J'ai fait un #include <afx.h> dans mon fichier "stdafx.h" mais il y a aucun changement notable
    Et j'ai vérifier dans ton mes fichier (.cpp + .h) et j'ai nul part un "#include <Windows.h>" je comprend pas très bien ce qu'il ce passe

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Utilisez l'option "/P" sur le fichier .cpp qui ne compile pas. https://msdn.microsoft.com/en-us/lib...or=-2147217396
    Cela permettra de remonter la chaine des includes et voir pourquoi "windows.h" est inclus "trop tard".

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    C'est bon j'ai résolu le problème

    En faite tout bête, je devait mettre tout les < #include "stdafx.h" > vraiment au début de chaque fichier .cpp

    Merci pour votre aide

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Oui le header précompilé doit être le premier include dans un fichier.
    Sinon tu as une erreur qui le stipule.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. error C1189: #error : "No Target Architecture"
    Par JackJnr dans le forum Débuter
    Réponses: 3
    Dernier message: 11/10/2013, 10h31
  2. Fatal error C1189: WINDOWS.H already included
    Par arnolefou dans le forum Visual C++
    Réponses: 6
    Dernier message: 05/03/2010, 11h13
  3. Réponses: 6
    Dernier message: 11/06/2009, 11h24
  4. Réponses: 2
    Dernier message: 26/06/2007, 23h49
  5. fatal error C1189: #error : WINDOWS.H already included.
    Par Moustico dans le forum Windows
    Réponses: 1
    Dernier message: 04/07/2006, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo