Je suis en train de réécrire un projet pour qu'il utilise accesseurs pour référencer le TiXmlElement * » s Cependant, je heurterez rapidement des problèmes qui semblent être liés au mode de débogage:getter et emballages setter pour TiXmlElement * « s
Ecxerpt de l'en-tête de ma classe:
TiXmlElement *_rootElement;
TiXmlElement *_dialogsElement;
TiXmlElement *_dialogElement;
TiXmlDocument _document;
void setDocument (TiXmlDocument doc) { this->_document = doc; }
void setRootElement (TiXmlElement * element) { this->_rootElement = element; }
void setDialogsElement (TiXmlElement * element) { this->_dialogsElement = element; }
TiXmlDocument getDocument() { return this->_document; }
TiXmlElement* getRootElement() { return this->_rootElement; }
TiXmlElement* getDialogsElement() { return this->_dialogsElement; }
Extrait du constructeur de la classe:
DCXML::DCXML(const char *dialogMark,const char *dialogName,TiXmlDocument doc) {
...
this->setDocument(doc);
this->setRootElement(this->getDocument().FirstChildElement("dcxml"));
this->setDialogsElement(this->getRootElement()->FirstChildElement("dialogs"));
Extrait de instancier la classe:
TiXmlDocument doc(input.gettok(2,"\"").to_chr());
bool dcxmlFile = doc.LoadFile();
...
DCXML *dcxml = new DCXML(input.gettok(2).to_chr(),input.gettok(3).to_chr(),doc);
Maintenant, pour la partie étrange. Cela fonctionne jusqu'à
this->setDialogsElement(this->getRootElement()->FirstChildElement("dialogs"));
dans le constructeur. -> FirstChildElement ("dialogs") renvoie une erreur "CXX0039: Erreur: symbole est ambigu" dans VS2008 en mode débogage.
La partie étrange est IntelliSense ramasse sur la méthode FirstChildElement et le compilateur ne jette pas d'erreurs. Ce qui est encore plus bizarre, c'est qu'en mode release, il échoue simplement en silence pour obtenir l'élément dialogs.
Qu'est-ce que je fais mal? Ou si vous avez implémenté avec succès des wrappers getter setter pour TiXmlElement *, faites-moi savoir comment je peux le faire!
Pour référence complète est ici un extrait du fichier XML:
<?xml version="1.0" encoding="utf-8"?>
<dcxml>
<dialogs>
<dialog
name="mediaplayer"
center=""
w="300"
h="400"
caption="Mamp 4.0 BETA"
border="btmnzy">
</dialog>
</dialogs>
</dcxml>
commentaires serait très apprécié que je suis dans une impasse :)