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 :
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 :) ..
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
Comment on réaliser c'ette opération ?
Oui, j'ai bidouillé les options de compilation avec une priorité et ca a marche.