CString in Hex konvertieren
-
Hallo !
Warum funktioniert denn bitte dieser Code nicht ?
void ToHex (CString &str) { int i; CString sDump = str; int len = sDump.GetLength(); for (i = 0; i < len; i++) { str.Format(str + "%h", sDump[i]); } }
-
Ich würde meinen:
void ToHex (CString *str)so muß das heißen, jetzt bekommst du den Wert. Und beim Aufruf der func. sollte ToHex(&deineVariable) stehen.
Außerdem ist sDump eine CString Variable und kein Array, deshalb kannst du auch nicht sDump[i] schreiben. Kann das sein??
lg L00P
-
'h' ist nur ein Präfix, was noch fehlt ist der Typ. Siehe auch MSDN. Außerdem sind noch einige andere Stolpersteine in Deinem Code. Vorschlag für Umsetzung:
void ToHex(CString& str) { CString strHex; CString strHexResult; for(int ii = 0; ii < str.GetLength(); ++ii) { strHex.Format("%hc", str[ii]); strHexResult += strHex; } str = strHexResult; }Ohne Gewähr, da nicht getestet!

-
l00P schrieb:
Ich würde meinen:
void ToHex (CString *str)so muß das heißen, jetzt bekommst du den Wert. Und beim Aufruf der func. sollte ToHex(&deineVariable) stehen.
Außerdem ist sDump eine CString Variable und kein Array, deshalb kannst du auch nicht sDump[i] schreiben. Kann das sein??
lg L00P
Hi!
Du kannst CString & genauso gut verwenden. (Nennt sich Referenz)
Desweiteren hat der CString den operator[] überladen und erlaubt damit den Zugriff auf einzelne Zeichen.
-
Damit hab ich natürlich nicht gerechnet - danke!lg l00P
-
Shaggy schrieb:
'h' ist nur ein Präfix, was noch fehlt ist der Typ. Siehe auch MSDN. Außerdem sind noch einige andere Stolpersteine in Deinem Code. Vorschlag für Umsetzung:
Leider funktioniert der Code nich bzw. gibt ganz normal die character aus.
Liegt daran, das der Parameter "c" nicht korrekt ist. Es muss ein "x" oder "X", klein/groß, als Parameter an das %h gehängt werden.
Wo sind denn bitte die Stolpersteine in meinem Code ?
Also er funktioniert wunderbar.