Я переписываю проект, чтобы он использовал геттеры и сеттеры для ссылки на TiXmlElement *
Однако я быстро сталкиваюсь с проблемами, которые, похоже, связаны с режимом отладки:
Ecxerpt из заголовка моего класса:
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; }
Выдержка из конструктора класса:
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"));
Выдержка из экземпляра класса:
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);
Теперь о странной части. Это работает до
this->setDialogsElement(this->getRootElement()->FirstChildElement("dialogs"));
в конструкторе.
-> FirstChildElement ("dialogs") выдает ошибку "CXX0039: Ошибка: символ неоднозначен" в VS2008 в режиме отладки.
Странная часть: IntelliSense обнаруживает метод FirstChildElement, и компилятор не выдает никаких ошибок.
Что еще более странно, так это то, что в режиме релиза просто не удается получить элемент диалога.
Что я делаю не так? Или, если вы успешно внедрили обертки для getter-сеттера для TiXmlElement *, дайте мне знать, как я могу!
Для полной справки вот выдержка из файла 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>
Обратная связь была бы очень признательна, так как я зашел в тупик:)