WindowsCE: ASCII dynamisch nach Unicode konvertieren
-
Hi,
ich habe hier eine Windows-DLL, die ich für WindowsCE portieren will. Dort wird z.B. die Funktion CreateFile() benutzt, die als ersten Parameter einen dynamischen Textstring erhält. Unter WindowsCE muss das nun plötzlich ein Unicode-String sein, weswegen ich eine Konvertierung benötige, die mir aus meinem ASCII-Text einen Unicode-String macht.
Nur: wie geht das genau? _T() funktioniert logischerweise nicht, da es um einen Wert in einer Variablen geht.
-
Hallo,
Du müsstest jedes einzelne Zeichen aus dem char-array auslesen und ein wchar_t-Array mit diesen Werten füllen. Hier eine Funktion, die ein char-String in eine Unicode-String umwandelt:bool ToUnicode(char* str,wchar_t* pOut) { if(!str||!pOut)return false; int Length = strlen(str); for(int loop=0;loop<Length;loop++) pOut[loop] = (wchar_t)str[loop]; pOut[Length]=0; return true; }Der Aufruf könnte so aussehen:
char* str = "Dies ist ein Text"; wchar_t wstr[20]; // Hier muss beachtet werden, dass auch das Nullterminierungszeichen in den String geschrieben wird. ToUnicode(str,wstr);Ich hoffe, ich konnte dir helfen
MfG, Jochen
-
Thx

-
TomoT schrieb:
_T() funktioniert logischerweise nicht, da es um einen Wert in einer Variablen geht.
Warum nimmst du nicht gleich ne wchar_t/TCHAR Variable?
X nach Unicode:
http://msdn.microsoft.com/en-us/library/ms961248(v=MSDN.10).aspx
-
geeky schrieb:
Warum nimmst du nicht gleich ne wchar_t/TCHAR Variable?
Wer lesen kann ist klar im Vorteil: Die Daten liegen als ASCII vor. Und wenn ich deinem schlauen Rat folge, beißt sich die Katze in den Schwanz, wenn ich diese ASCII-Daten in dein wchar_t-Array bringen will.
-
Und genau dafür ist diese Funktion gedacht:
http://msdn.microsoft.com/en-us/library/ms961248(v=MSDN.10).aspx