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

Visual C++ Discussion :

Fatal error C1189: WINDOWS.H already included


Sujet :

Visual C++

  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Par d�faut Fatal error C1189: WINDOWS.H already included
    Bonjour � tous,

    Je suis en pr�sence d'une erreur r�currente que je n'ai pas r�ussie � r�soudre.

    Pour situer le contexte: je dois d�velopper un web service en utilisant une l'API C++ d'une application.

    Pour cela, sous Visual Studio 2005, j'ai cr�� un projet "ATL Server Web Service". Pour avoir acc�s aux fonctionnalit�s de l'API, j'importe trois fichiers headers dans mon projet. Ces fichiers font r�f�rence � un autre header, "afxtempl.h". Comme stipul� dans le header "stdafx.h" cr�� avec le projet, je suis somm� de placer toute r�f�rence de ce type dans le dit fichier. J'ai donc enlev� les r�f�rences � "afxtempl.h" des headers fournis par l'API, pour les placer dans "stdafx.h".

    Voici donc la structure de mon fichier "stdafx.h" :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    // stdafx.h : include file for standard system include files,
    // or project specific include files that are used frequently, but
    // are changed infrequently
    //
    
    #pragma once
    
    #define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
    
    #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS	// some CString constructors will be explicit
    
    // critical error descriptions will only be shown to the user
    // in debug builds. they will always be logged to the event log
    #ifndef _DEBUG
    #define ATL_CRITICAL_ISAPI_ERROR_LOGONLY
    #endif
    
    #define _ATL_APARTMENT_THREADED
    
    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x0403
    #endif
    
    // TODO: this disables support for registering COM objects
    // exported by this project since the project contains no
    // COM objects or typelib. If you wish to export COM objects
    // from this project, add a typelib and remove this line
    #define _ATL_NO_COM_SUPPORT
    
    #include "resource.h"
    #include <atlsrvres.h>
    #include <atlisapi.h>
    #include <atlstencil.h>
    #include <atlsoap.h>
    
    
    // Additional references
    #include <afxtempl.h>
    J'obtiens l'erreur suivante lors de la compilation:

    Error 1 fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
    Si je commente "#include <afxtempl.h>" l'erreur dispara�t (mais l'API ne peut plus fonctionner).

    J'ai largement cherch� une solution au probl�me sur Internet, je ne vois pas d'o� cela peut venir. C'est s�rement quelque chose que je fais mal, mais impossible de savoir quoi. Aussi, toute aide me serait tr�s pr�cieuse pour que j'avance enfin sur mon projet...

    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Salut

    Citation Envoy� par arnolefou Voir le message
    Comme stipul� dans le header "stdafx.h" cr�� avec le projet, je suis somm� de placer toute r�f�rence de ce type dans le dit fichier.
    Renseigne toi sur la n�cessit� de ceci avant d'ob�ir. En quoi est ce li� � la compilation ? Au d�ploiement ?

    Citation Envoy� par arnolefou Voir le message
    Comme stipul� dans le header "stdafx.h" cr�� avec le projet, je suis somm� de placer toute r�f�rence de ce type dans le dit fichier.
    Et non. Tu modifies les headers de l'API l�. C'est louche comme manip. Les barri�res anti-inclusion devraient faire le travail � ta place. Essaye en laissant l'API tranquille et en laissant aussi l'include dans stdafx.h.

  3. #3
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Par d�faut
    Citation Envoy� par jblecanard Voir le message
    Renseigne toi sur la n�cessit� de ceci avant d'ob�ir. En quoi est ce li� � la compilation ? Au d�ploiement ?
    La n�cessit� vient du TODO original... Enfin, je pense?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include "resource.h"
    #include <atlsrvres.h>
    #include <atlisapi.h>
    #include <atlstencil.h>
    #include <atlsoap.h>
    
    
    // TODO: reference additional headers your program requires here
    Quant au reste de tes questions, eh bien, je ne sais pas quelle diff�rence cela fait.

    Citation Envoy� par jblecanard Voir le message
    Et non. Tu modifies les headers de l'API l�. C'est louche comme manip. Les barri�res anti-inclusion devraient faire le travail � ta place. Essaye en laissant l'API tranquille et en laissant aussi l'include dans stdafx.h.
    Oui c'est un peu brutal. Mais disons aussi que, si � aucun moment je n'inclue aucun des headers de l'API (donc, que je ne pointe pas dessus), et que j'inclue quand m�me quelque part "afxtempl.h", l'erreur retourn�e est la m�me. C'est donc li�, a priori, � un conflit entre ce header et quelque chose de d�j� d�clar� ou initialis�. Non?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par arnolefou Voir le message
    C'est donc li�, a priori, � un conflit entre ce header et quelque chose de d�j� d�clar� ou initialis�. Non?
    On dirait bien oui. Y a-t-il bien une barri�re anti-inclusion dans afxtempl.h ? Es-tu cens� modifier ce fichier ou non ?

  5. #5
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Par d�faut
    Non, je ne pense pas, c'est une librairie Microsoft, enfin qui fait partie de la lign�e des afx____.h.
    En tous cas j'ai beau d�broussailler dans tous les sens et retourner le probl�me, � grands coups de googling, je peine beaucoup � avancer.

    Peut-�tre faut-il que je change mon contexte de d�veloppement?

    En fait, disons que la n�cessit� que j'ai, c'est d'utiliser les fonctionnalit�s de l'API (qui sont � la base faites pour d�velopper une "console" propre, enfin une application desktop quoi), pour cr�er un/des Web Service(s) (afin de pouvoir utiliser les fonctionnalit�s dans une grosse plate-forme documentaire).

    Le seul pr�-requis, c'est d'avoir un support des MFC puisque l'API se base dessus. Bref, je ne sais pas si le type de projet que j'ai cr�� (et qui ne marche pas) correspond bien � mon besoin (sous Visual Studio 2005, type de projet "ATL Server Web Service').

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Re

    je t'avouerai en toute honn�tet� que je n'en sais rien, je ne suis pas du tout sp�cialiste des web services, et encore moins sur plateforme microsoft. J'esp�re que quelqu'un de plus comp�tent pourra t'aider

  7. #7
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Par d�faut
    Sans aucun probl�me Je continue de chercher. Je continue de surveiller d'�ventuelles r�ponses ici, sinon, j'essaierai de reformuler ma requ�te ("comment faire" plut�t que "comment d�bloquer le probl�me" sera peut-�tre plus judicieux...).

    De toute mani�re, merci pour ton attention.

Discussions similaires

  1. R�ponses: 6
    Dernier message: 11/06/2009, 11h24
  2. fatal error C1083: Impossible d'ouvrir le fichier include : stdio.h
    Par math26 dans le forum Biblioth�que standard
    R�ponses: 3
    Dernier message: 03/12/2007, 23h50
  3. R�ponses: 7
    Dernier message: 20/01/2007, 19h00
  4. fatal error C1189: #error : WINDOWS.H already included.
    Par Moustico dans le forum Windows
    R�ponses: 1
    Dernier message: 04/07/2006, 18h22
  5. error C1189 et windows.h
    Par hitchie dans le forum MFC
    R�ponses: 6
    Dernier message: 30/09/2005, 13h41

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