2015-12-08 4 views
0

У меня есть этот C++ код, в котором я пытаюсь получить значение сформировать файл XML через QDomDocument API:Ошибка при получении значения QDomElement в QString

 ... 
     QFile xml_file("file.xml"); 
     QDomDocument qdom_document; 
     maps_qdom_document.setContent(&maps_xml_file); 
     QDomNodeList maps = qdom_document.elementsByTagName("map"); 
     QDomNode n = maps.item(0); 
     QDomElement markers_list = n.firstChildElement("markers_list"); 
     QDomNodeList markers = markers_list.elementsByTagName("marker"); 
     QDomNode marker; 
     int _id; 
     QString value1; 
     for (int i = 0; i < markers.size(); i++) { 
      marker = markers.item(i); 

      // APPLICATION STOPS AT THE LINE BELOW 
      value1 = marker.firstChildElement("id").text(); //!!!ERROR DETECTED HERE 
      _id = value1.toInt(); 
     } 
     ... 

тестирования value1 значение оно определено и содержит значение, Я хочу (я преобразовать его в StD :: строку и прочитать)

Error Detected when getting value1

это стек вызовов, когда программа останавливается на линии, описанной:

Call Stack on the error

и этого natvis выход:

Natvis: C:\USERS\USER\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0\EXTENSIONS\BFMZ1AIF.2DM\natvis\qt5.natvis(200,25): Error: class "QString::Data" has no member "offset" 
Error while evaluating '((reinterpret_cast<unsigned short*>(d)) + d->offset/2),sub' in the context of type 'main.exe!QString'. 

Я использую Visual Studio 2015 и компилятор vsc10 (в Visual Studio 2010). Я использую QT VS Addin, который лучше всего подходит для Qt 5, но я настраиваю его с помощью libtraces Qt4.8.

Я искал в сети и обнаружил, что это проблема с памятью (удалить удаленную переменную или что-то в этом роде), но я не нашел правильного решения.

ответ

0

Я нашел проблему такого поведения. Это связано с тем, что версия Qt VS Addin поддерживает только Qt5 или более позднюю версию. Поскольку мой проект связан с Qt 4.8, он создает некоторые ошибки, подобные этому. После обновления версии Qt до версии 5.5 эта проблема исчезает.

Смежные вопросы