[RESOLU] Lib TinyXML sous visual 2008 MFC

romainOne
[RESOLU] Lib TinyXML sous visual 2008 MFC

Bonjour ..

Suit a mon projet de fin d'année, je dois pouvoir crée/écrir/lire et sauvegarde dans un fichier xml sous visual 2008 en MFC. Après plusieurs recherche, je suis tombe sur la lib tinyXml. Après l'avoir dl sur le site officiel et compiler le projet. j'ai copié tinyxml.h, tinystr.h et tinyxmld.lib dans la rcaine de mon projet et mit comme include tinyxml.h et tinystr.h.

j'arrive a utiliser TinXmlDocument pour crée un objet et avec cette objet les fonctions propre a la lib comme : doc.LoaderFile.

Mais des que je compile, erreur de link :

Quote:
1>Édition des liens en cours...
1>LaCentraleDomotique.obj : error LNK2019: symbole externe non résolu "public: bool __thiscall TiXmlDocument::LoadFile(enum TiXmlEncoding)" (?LoadFile@TiXmlDocument@@QAE_NW4TiXmlEncoding@@@Z) référencé dans la fonction "public: bool __thiscall CLaCentraleDomotiqueApp::SauvegardeDeInstallation(void)" (?SauvegardeDeInstallation@CLaCentraleDomotiqueApp@@QAE_NXZ)
1>LaCentraleDomotique.obj : error LNK2019: symbole externe non résolu "public: __thiscall TiXmlDocument::TiXmlDocument(char const *)" (??0TiXmlDocument@@QAE@PBD@Z) référencé dans la fonction "public: bool __thiscall CLaCentraleDomotiqueApp::SauvegardeDeInstallation(void)" (?SauvegardeDeInstallation@CLaCentraleDomotiqueApp@@QAE_NXZ)
1>LaCentraleDomotique.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall TiXmlNode::~TiXmlNode(void)" (??1TiXmlNode@@UAE@XZ) référencé dans la fonction "public: virtual __thiscall TiXmlDocument::~TiXmlDocument(void)" (??1TiXmlDocument@@UAE@XZ)
1>LaCentraleDomotique.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall TiXmlDocument::Print(struct _iobuf *,int)const " (?Print@TiXmlDocument@@UBEXPAU_iobuf@@H@Z)
1>LaCentraleDomotique.obj : error LNK2001: symbole externe non résolu "public: virtual char const * __thiscall TiXmlDocument::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlDocument@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)
1>LaCentraleDomotique.obj : error LNK2001: symbole externe non résolu "protected: virtual class TiXmlNode * __thiscall TiXmlDocument::Clone(void)const " (?Clone@TiXmlDocument@@MBEPAVTiXmlNode@@XZ)
1>LaCentraleDomotique.obj : error LNK2001: symbole externe non résolu "public: virtual bool __thiscall TiXmlDocument::Accept(class TiXmlVisitor *)const " (?Accept@TiXmlDocument@@UBE_NPAVTiXmlVisitor@@@Z)
1>LaCentraleDomotique.obj : error LNK2001: symbole externe non résolu "private: static struct TiXmlString::Rep TiXmlString::nullrep_" (?nullrep_@TiXmlString@@0URep@1@A)
1>C:\Users\Romain\Desktop\LaCentraleDomotique\Debug\LaCentraleDomotique.exe : fatal error LNK1120: 8 externes non résolus

Si vous avez une idée :) ..

fredericmazue
Re: Lib TinyXML sous visual 2008 MFC

Bonjour, comme première idée, je suggère de poster cette question dans le forum C++, plutôt que VB 6.0 :wink:

Je suppose que ton compilateur C++ décore (dans ton code) les noms des fonctions tu appelles dans tinyXML. Alors l'éditeur de liens cherche les nom de fonction décorés et ne les trouve pas.

Déclarer extern "C" ces fonctions dans ton code devrait le faire, ou inclure le fichier en-tête tinyXML qui va bien pour le faire.
Ou peut-être qu'il y a un pb avec la convention d'appel __thiscall qu'il faut soit enlever, soit dire au compilo ce que c'est

romainOne
Re: Lib TinyXML sous visual 2008 MFC

Quote:
Ou peut-être qu'il y a un pb avec la convention d'appel __thiscall qu'il faut soit enlever, soit dire au compilo ce que c'est

Comment on réaliser c'ette opération ?

fredericmazue
Re: [RESOLU] Lib TinyXML sous visual 2008 MFC

Quote:
Comment on réaliser c'ette opération ?/quote]

Faut voir dans la doc du compilo. A priori, en imposant une autre convention d'appel, et bien sûr celle qui a été utilisée pour compiler TinyXML. Si c'est bien là que se situe le problème. Je pense plutôt pour un problème de décoration de nom, et donc extern "C" devrait le faire.

Tu as marqué le topic comme résolu, tu as eu satisfaction ?

romainOne
Re: [RESOLU] Lib TinyXML sous visual 2008 MFC

Oui, j'ai bidouillé les options de compilation avec une priorité et ca a marche.