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 :

[librairie] erreur lors de l'include de <windows.h>


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut [librairie] erreur lors de l'include de <windows.h>
    Bonjour à tous,
    Je suis actuellement sur un projet dont vous pourrez trouver quelque prob déjà rencontrer sur le forum. Je viens de trouver un nouveau problème : dès que j'inclue le windows.h dans l'un de mes fichiers source de mon projet le compilateur m'envoie promener!
    Quelqu'un a t il deja eu ca ??

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    m'envoie promener, ne nous permet pas de statuer sur le problème ....

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Voici les erreur que j'ai des que je rajoute #include <windows.h>
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(93) : error C2872: 'IServiceProvider' : ambiguous symbol
    could be 'c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(48) : System::IServiceProvider IServiceProvider'
    or 'c:\winnt\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(93) : error C3699: '*' : cannot use this indirection on type 'IServiceProvider'
    compiler replacing '*' with '^' to continue parsing
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(100) : error C2371: 'IServiceProvider' : redefinition; different basic types
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(48) : see declaration of 'IServiceProvider'
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(117) : error C2872: 'IServiceProvider' : ambiguous symbol
    could be 'c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(100) : IServiceProvider'
    or 'c:\winnt\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(231) : error C2872: 'IServiceProvider' : ambiguous symbol
    could be 'c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(100) : IServiceProvider'
    or 'c:\winnt\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
    c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(238) : error C2872: 'IServiceProvider' : ambiguous symbol
    could be 'c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(100) : IServiceProvider'
    or 'c:\winnt\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
    C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\urlmon.h(5174) : error C2872: 'IServiceProvider' : ambiguous symbol
    could be 'c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(100) : IServiceProvider'
    or 'c:\winnt\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
    C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\urlmon.h(5176) : error C2872: 'IServiceProvider' : ambiguous symbol
    could be 'c:\program files\microsoft platform sdk for windows server 2003 r2\include\servprov.h(100) : IServiceProvider'
    or 'c:\winnt\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
    Voila, si c'est plus clair pour vous moi ca me va

    merci de penser aux balises / nico-pyright(c)

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    rajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define WIN32_LEAN_AND_MEAN
    juste avant l'include de windows.h

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Citation Envoyé par nico-pyright(c)
    rajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define WIN32_LEAN_AND_MEAN
    juste avant l'include de windows.h
    Ok ca enleve en effet le bug. Mais pourrais je avoir un peu de détail sur ceci pour savoir ce que ca fait (j'aime bien savoir ce que je fais quand même)

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il y a un conflit quand <windows.h> est inclus après le using namespace System;, Car les deux contiennent une interface IServiceProvider.

    Définir WIN32_LEAN_AND_MEAN évite que Windows tente de déclarer l'IServiceProvider, donc ça marche.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    ce define permet de ne pas inclure tout windows.h en elevant les définitions peut-utilisées
    IServiceProvider est une interface COM définie par windows.h qui est aussi définie par .Net, donc il y a un conflit.
    En évitant de l'inclure par windows.h, on enleve le conflit

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

Discussions similaires

  1. erreur lors de la compilation avec \include
    Par floyd973 dans le forum Erreurs - Avertissements
    Réponses: 10
    Dernier message: 09/08/2014, 10h52
  2. Erreur lors de l'appel au contrôle Windows Date and Time Picker
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/03/2014, 12h56
  3. [JNA] Erreur lors de l'appel de fonction venant d'une librairie
    Par lac981 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 31/05/2011, 11h02
  4. Réponses: 3
    Dernier message: 25/02/2008, 09h09
  5. Erreur lors de l'installation openssl sur windows
    Par spirou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/07/2006, 17h14

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