Hallo,
folgendes Problem:
Ich habe in einem buffer 8 Hexzahlen stehen, also z.B.:
0x96 0x65 0x00 0x11 0x3A 0xCB 0x1A
ich schreibe diese nun in response, will dann die ersten 4 auslesen und
sie dann aufteilen, weil Sie z.B. ein Datum o. ä. darstellen.
Code:
AnsiString tmp;
response = GetInfoBuffer.front();
tmp = response.data[0];
tmp += ":";
tmp += respose.data[1];
tmp += ":";
tmp += respose.data[2];
tmp += ":";
tmp += respose.data[3];
EditSWDateTime->Text = tmp.c_str();
Das funktioniert soweit auch ganz gut,
also z. B.:
tmp = 0x09; //Dez: 9
tmp += ":";
tmp += 0x0A; //dez: 10
tmp += ":";
tmp += 0x63; //dez: 99
tmp += ":";
tmp += 0x09;// dez: 9
geht noch problemlos,
wenn dann aber die 3. zahl einen 2 stelligen dezimalwert ergibt, bekomme ich beim Beenden des Programms eine Fehlermeldung. Allerdings wird zur Laufzeit dann schon das richtige angezeigt:
Bsp.:
tmp = 0x09; //Dez: 9
tmp += ":";
tmp += 0x0A; //dez: 10
tmp += ":";
tmp += 0x63; //dez: 99
tmp += ":";
tmp += 0x0A;// dez: 10
hier bekomme ich eine Fehlermeldung:
"Zugriffsverletzung bei adresse 004BBA0E in Modul 'Messsystem.exe'. Schreiben von Adresse 0000C1B9"
Ab und zu kommt die Fehlermeldung auch schon direkt beim Drücken des "Auslesen" Buttons, manchmal auch erst beim Beenden des Programms.
wäre euch für euere Hilfe Dankbar, denn ich weiß echt nicht mehr weiter
folgendes Problem:
Ich habe in einem buffer 8 Hexzahlen stehen, also z.B.:
0x96 0x65 0x00 0x11 0x3A 0xCB 0x1A
ich schreibe diese nun in response, will dann die ersten 4 auslesen und
sie dann aufteilen, weil Sie z.B. ein Datum o. ä. darstellen.
Code:
AnsiString tmp;
response = GetInfoBuffer.front();
tmp = response.data[0];
tmp += ":";
tmp += respose.data[1];
tmp += ":";
tmp += respose.data[2];
tmp += ":";
tmp += respose.data[3];
EditSWDateTime->Text = tmp.c_str();
Das funktioniert soweit auch ganz gut,
also z. B.:
tmp = 0x09; //Dez: 9
tmp += ":";
tmp += 0x0A; //dez: 10
tmp += ":";
tmp += 0x63; //dez: 99
tmp += ":";
tmp += 0x09;// dez: 9
geht noch problemlos,
wenn dann aber die 3. zahl einen 2 stelligen dezimalwert ergibt, bekomme ich beim Beenden des Programms eine Fehlermeldung. Allerdings wird zur Laufzeit dann schon das richtige angezeigt:
Bsp.:
tmp = 0x09; //Dez: 9
tmp += ":";
tmp += 0x0A; //dez: 10
tmp += ":";
tmp += 0x63; //dez: 99
tmp += ":";
tmp += 0x0A;// dez: 10
hier bekomme ich eine Fehlermeldung:
"Zugriffsverletzung bei adresse 004BBA0E in Modul 'Messsystem.exe'. Schreiben von Adresse 0000C1B9"
Ab und zu kommt die Fehlermeldung auch schon direkt beim Drücken des "Auslesen" Buttons, manchmal auch erst beim Beenden des Programms.
wäre euch für euere Hilfe Dankbar, denn ich weiß echt nicht mehr weiter
Comment