Bonjour à tous,
Voilà quelques heures que je suis bloqué que un truc sûrement tout bête (ou pas...). J'ai une application écrite en VC++ qui prend en entrée un fichier GPX (c'est tout simplement un fichier XML contenant des données GPS). Je souhaiterai dans cette application pouvoir valider ce fichier grâce au schéma fourni ici : gpx.xsd
J'ai trouvé pas mal d'exemples de code mais rien n'y fait. Voilà ce qui plante (je vous passe les if(FAILED(hResult))) :
Mon ptrSchemaCache est déclaré comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 HRESULT hResult = S_OK; hResult = CoInitialize(NULL); hResult = ptrSchemaCache.CreateInstance(__uuidof(XMLSchemaCache60)); hResult = ptrSchemaCache->add(_bstr_t( _T("")), _variant_t( _T("D:\\gpx.xsd")));
Donc clairement, ça plante sur le ptrSchemaCache->add(). Ca compile sans problème mais lors du débugage, j'ai le message d'erreur suivant que je passe sur cette instruction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7#import <msxml6.dll> using namespace MSXML2; [...] MSXML2::IXMLDOMSchemaCollectionPtr ptrSchemaCache;
Qui est à priori généré dans la fonction suivante de msxml6.tli :Unhandled exception at 0x7c812afb in GeoVision.exe: Microsoft C++ exception: _com_error at memory location 0x0012fb80..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 inline HRESULT IXMLDOMSchemaCollection::add ( _bstr_t namespaceURI, const _variant_t & var ) { HRESULT _hr = raw_add(namespaceURI, var); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return _hr; }
Je pense n'avoir rien oublié...
Si quelqu'un à une idée... ça fait un moment que je me casse les dents là-dessus
Partager