Ich lese über eine DLL Werte von einem externen Gerät ein und erhalte dabei eine unsigned char Array, das ich in einen String mit unterschiedlichen Formaten wandeln möchte. Dazu übergebe ich das Array mit einigen weiteren Parametern einer statischen Methode in einer separaten Klasse. Diese Methode sieht momentan wie folgt aus:
Code: Alles auswählen
QString Configuration::dataToString(unsigned char* chBuffer, int length, int offset){
QString valueString = "Test";
// for (int i=0 + offset; i < length + offset; i++)
// {
// valueString += valueString.number((int) chBuffer[i], format);
// if (i < (length -1))
// {
// valueString += chSeparator;
// }
// }
// valueString += chTerminator + "\0";
return valueString;
}
Code: Alles auswählen
void DataDisplay::on_btnRead_clicked()
{
QString dataString;
iReturn = reader->MF_Getsnr(0x52, 0, &snr, chTagID);
if (iReturn == 0)
{
dataString = Configuration::dataToString(chTagID, 4, 0);
dataString = "neu";
ui->tagList->append(dataString);
}
else
{
ui->tagList->append("Kein Tag erkannt");
}
}
Das ist momentan natürlich alles auskommentiert, weil ich direkt nach dem Aufruf in eine Exception renne:
Ich habe das Konzept in einem kleinen Testprojekt praktisch 1:1 nachgebaut und da funktioniert es. Die Prototypen sind absolut identisch mit den Aufrufen. Wenn ich den Code Schritt für Schritt debugge, dann ist eine Sache sehr merkwürdig:
Ich springe in die statische Methode und durchlaufe sie auch ohne Probleme, dann springe ich zurück zur aufrufenden Methode und sehe noch die Anzeigen:
dataString = ""
this = Wert: DataDisplay Typ: DataDisplay
Gehe ich dann einen Einzelschritt weiter, was wohl der eigentlichen Zuweisung entspricht, dann erhalte ich:
dataString = <unzugänglich>
Noch zur Info: Ich entwickel auf einem Windows 10 Rechner mit QT5.10 und QT-Creator. Als Compiler nutze ich MinGW und MSVC15. Der Fehler kommt bei beiden Compilern.
Hat jemand eine Idee, was ich hier übersehe??