Wie konvertiere ich eine Zeichenkette in eine Zeichenkette wchar_t?

7

Ich habe eine Zeichenkette im char* -Format und möchte sie in wchar_t* konvertieren, um sie an eine Windows-Funktion zu übergeben.

    
justinhj 24.11.2009, 17:17
quelle

4 Antworten

13

Hilft diese kleine Funktion?

%Vor%

Siehe auch die C ++ Referenz

    
schnaader 24.11.2009, 17:23
quelle
8

Wenn Sie keine Verknüpfung mit der C-Laufzeitbibliothek herstellen möchten, verwenden Sie den MultiByteToWideChar-API-Aufruf, z. B .:

%Vor%     
Hernán 24.11.2009 17:28
quelle
2

Das Windows SDK gibt in der Datei kernel32.lib zwei Funktionen zum Konvertieren von Zeichenfolgen von und in einen breiten Zeichensatz an. das sind MultiByteToWideChar() und WideCharToMultiByte() .

Beachten Sie, dass die Zeichenfolge anders als der vorgeschlagene Funktionsname nicht notwendigerweise einen Multi-Byte-Zeichensatz verwendet, sondern eine einfache ANSI-Zeichenfolge sein kann. Beachten Sie, dass diese Funktionen UTF-7 und UTF-8 als Multi-Byte-Zeichensatz verstehen. Der Zeichensatz mit dem breiten Zeichensatz ist immer UTF-16.

    
Adrien Plisson 24.11.2009 17:32
quelle
1

schnaaders Antwort verwendet die Umwandlung, die durch das aktuelle C-Gebietsschema definiert ist, dieses verwendet die C ++ - Gebietsschema-Schnittstelle (wer hat gesagt, dass es einfach war?)

%Vor%     
AProgrammer 24.11.2009 19:11
quelle

Tags und Links