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 :

Erreur de compilation après l'ajout d'un header Windows


Sujet :

Visual C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 66
    Points
    66
    Par défaut Erreur de compilation après l'ajout d'un header Windows
    Bonjour.
    Je voudrais utiliser dans mon code la fonction SHCreateDirectory. Sur msdn, il est préciser que cette fonction nécessite le header Shlobj.h.

    Ainsi, au début de mon code, j'ajoute simplement la ligne suivant:
    A partir de cet instant, j'ai constamment l'erreur suivant lorsque j'essaye de compiler Visual Studio 2010 me renvoie l'erreur suivante:
    Erreur 1 error C2872: 'IXMLDOMDocument'*: symbole ambigu c:\program files\microsoft sdks\windows\v7.0a\include\shobjidl.h
    Avez vous une idée de la cause de cette erreur? comment pourrais je la corriger?
    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 66
    Points
    66
    Par défaut
    Je comprends un peu mieux l'erreur, en fait j'ai deux header sur mon PC qui contiennent la fonction IXMLDOMDocument présente dans shobj.h:

    c:\program files\microsoft sdks\windows\v7.0a\include\shobjidl.h(17624): error C2872: 'IXMLDOMDocument'*: symbole ambigu
    1> est peut-être 'c:\program files\microsoft sdks\windows\v7.0a\include\msxml.h(1399)*: IXMLDOMDocument'
    1> ou 'z:\documents and settings\toto\mes documents\visual studio 2010\projects\superviser\superviser\debug\msxml6.tlh(1976)*: MSXML2::IXMLDOMDocument'
    Sur le site de Windows, il est dit qu'il faut indiquer spécifiquement le namespace à utiliser. Problème, ici ce n'est pas moi qui appelle la fonction, c'est une librairie qui le fait. Je ne vais tout de même pas aller modifier le code d'une librairie, si?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 139
    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 139
    Points : 12 239
    Points
    12 239
    Par défaut
    Pas tout compris.

    Il y a colision de nom.

    Utiliser dans un même cpp "msxml.h" et "shobjidl.h", c'est très suspect.

    Généralement, quand c'est dû à de vraies collisions, j'entoure l'un des includes avec un "namespace toto{ ... #include ....h ....}"

    Ainsi, tout ce qui est défini dans l'include sera dans un namespace "toto".

Discussions similaires

  1. Erreur de compilation dès l'ajout d'un élément sur mon layout
    Par bypbop dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 28/10/2011, 14h59
  2. Réponses: 0
    Dernier message: 14/10/2009, 22h52
  3. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  4. Réponses: 2
    Dernier message: 04/05/2007, 09h17

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