Lange her dass ich mich hier hab blicken lassen. Und ich hab auch ein ziemlich seltsames Problem. Ein Beispielcode:
Code:
// Load data.xml
IXMLReader* xml = m_fileSystem->createXMLReader("data.xml");
while(xml && xml->read())
{
switch(xml->getNodeType())
{
case EXN_ELEMENT:
if(stringw("model") == xml->getNodeName())
{
printf("[Load] Mesh is: %c \n", xml->getAttributeValueSafe(L"mesh"));
}
}
}
delete xml;
Das entsprechende XML Element sieht so aus:
Code:
<model id="1" mesh="models/ship.3ds" texture="checker.png" radius="10">
Das doofe is aber, ausgegeben wird:
Code:
[Load] Mesh is: Ç
Was läuft da schief? Das ist bei IrrXMLReader und IXMLReader so.
Edit:
Dasselbe ist bei Kombinationen wie:
Code:
printf("[Load] Mesh is: %s \n", stringw(xml->getAttributeValueSafe(L"mesh")));
printf("[Load] Mesh is: %s \n", xml->getAttributeValueSafe(L"mesh"));
Allerdings ergibt:
Code:
printf("[Load] Mesh is: %s \n", stringw(xml->getAttributeValueSafe(L"mesh")));
Code:
[Load] Mesh is: É?B
Kurz: Ich hab alles probiert, und überall lieferts mir nur datenmüll.
xml->getAttributeValue() oder xml->getAttributeValueSafe() macht auch keinen Unterschied.
Integer und Floats funktionieren aber einwandfrei.