Bonjour à tous,

Je réalise une migration d'un gros projet développé sous VC6 vers VC8 (Visual 2005). Je recontre un problème que je ne sais pas résoudre.

J'ai une classe qui parse des documents XML en utilsant l'API MSXML.
En l'occurence :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#import "MSXML4.dll"
Je fais bien un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
using namespace MSXML2;
et malgré ça quand je définit un attibut :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
public:
   IXMLDOMElementPtr  mpo_Racine;
J'ai cette erreur à la compilation :
error C2872: 'IXMLDOMElementPtr' : symbole ambigu
est peut-être 'c:\program files\microsoft visual studio 8\vc\include\comdefsp.h(1239) : _com_ptr_t<_IIID> IXMLDOMElementPtr'
with
[
_IIID=_com_IIID<IXMLDOMElement,& _GUID_2933bf86_7b36_11d2_b20e_00c04f983e60>
]
ou 'd:\projetsvs2005\pcw\pcwexe\cfg - serveur configuration\debug\msxml4.tlh(292) : MSXML2::IXMLDOMElementPtr'
Je ne comprend pas il ne devrait pas y avoir d'ambigüité vu que je définit bien le namespace comme étant MSXML2

Le probleme est résolu si j'ecrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
public:
  MSXML2::IXMLDOMElementPtr  mpo_Racine;
Mais j'ai beaucoup beaucoup beaucoup d'attribut comme ça et j'imagine qu'il doit y avoir une vraie solution à ce problème ... pas de la bricole comme ça.

Merci bien de votre aide