Chracterarray in UnicodeString
-
Servus liebe Programmierergemeinde,
wenn ich alle Zeichen aus einem unsigned char-Array in einer UnicodeString-Variblen während der Programmlaufzeit kopieren möchte, erhalte ich komische Zeichen. Was mache ich verkehrt?
Hier der Quelltextauszug:uiPrintText[0] = (wchar_t*)Datenmenge.DescrStr;
uiPrintText ist ein UnicodeString-Array! Verschiedene Texte sollen in dem Array abgelegt werden.
DescrStr entspricht einem Array vom Typ unsigned char.
BCB 2009
Bitte um Hilfe.
-
Vielleicht hilft dir das hier
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39492.html
-
Hallo,
sorry habe es auch auf diese Weise versucht. Scheine dort etwas verkehrt zu machen, denn ich bekomme beim Compilieren Fehler und dann auch wieder irgendwelche wilden Zeichen.
Trotzdem danke.
-
TerraNorma schrieb:
(wchar_t*)Datenmenge.DescrStr;
...
DescrStr entspricht einem Array vom Typ unsigned char.Weißt du denn, was du da tust?
-
Bei der Zuweisung eine art Typenumwandlung bzw. Cast?
-
TerraNorma schrieb:
Scheine dort etwas verkehrt zu machen, denn ich bekomme beim Compilieren Fehler und dann auch wieder irgendwelche wilden Zeichen.
Wenn du uns noch sagen könntest, welche Fehler du bekommst.
-
TerraNorma schrieb:
Bei der Zuweisung eine art Typenumwandlung bzw. Cast?
Du erzwingst die Wandlung von char* nach wchar_t*, also eine Zeigerkonversion, durch einen sogenannten Hard Cast. Der Compiler interpretiert den Ausdruck also als Zeiger auf ein wchar_t-Array, obwohl es sich um ein char-Array handelt.
=> Benutze keine Hard Casts (insbesondere keine im C-Stil, sondern falls überhaupt notwendig mit reinterpret_cast<>), wenn du nicht weißt, was du tust.
Überhaupt ist der Cast überflüssig.