Ik ben bezig met het bouwen van een wrapper class in C++. Deze class gebruikt RapidXML en zorgt in feite voor simpele functionaliteit voor het schrijven en lezen van een configuratiebestand. Ik loop nu echter tegen een probleem aan dat ik nergens terug kan vinden. De naam en waarde van de XML nodes die ik tegen kom kloppen niet. Daarintegen kloppen de lengte van zowel de naam als waarde van deze node wel! Het maakt niet uit welke node ik gebruik. De code is als volgt.
Visual Studio komt met een runtime error op het moment dat ik test.compare() gebruik. Hij geeft aan dat er sprake is van een invalid null pointer. De "_key" bevat op dat moment de waarde "test". Ik heb dit ook gecontroleerd. Ik verdenk dus de waarde van de variabele "string test" op verkeerde inhoud.
De naam en inhoud van de node waarin ik bezig ben, in dit geval "entry" bevatten een soort ASCII string met allemaal i's Dit ziet er als volgt uit.

Kan iemand me misschien helpen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| string GameConfiguration::ReadValue(const char *_key) { xml_node<> *root = mDocument.first_node(); for (xml_node<> *entry = root->first_node(); entry; entry = entry->next_sibling()) { string test = entry->first_node()->value(); if (test.compare(_key) == 0) { if (xml_node<> *nValue = entry->first_node("Value")) { return nValue->value(); } } } return NULL; } |
Visual Studio komt met een runtime error op het moment dat ik test.compare() gebruik. Hij geeft aan dat er sprake is van een invalid null pointer. De "_key" bevat op dat moment de waarde "test". Ik heb dit ook gecontroleerd. Ik verdenk dus de waarde van de variabele "string test" op verkeerde inhoud.
De naam en inhoud van de node waarin ik bezig ben, in dit geval "entry" bevatten een soort ASCII string met allemaal i's Dit ziet er als volgt uit.

Kan iemand me misschien helpen?