Was ist der einfachste Weg, um einen char-Array zu einem WCHAR Array zu konvertieren?
Frage
In meinem Code, erhalte ich eine const char array
wie folgt aus:
const char * myString = someFunction();
Jetzt möchte ich es als wchar array
da die Funktionen nachbearbeiten ich später verwenden nicht behandeln schmalen Saiten.
Was ist der einfachste Weg, um dieses Ziel zu erreichen?
Schließlich MultiByteToWideChar? (Da es jedoch eine schmale Zeichenfolge ist, die ich als Input bekommen, ist es nicht Mehrbytezeichen haben => wahrscheinlich nicht die schönste Lösung)
Lösung
const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];
Andere Tipps
MultiByteToWideChar wird funktionieren, wenn Sie erweiterte Zeichen in Ihrem engen String verwenden. Wenn es eine einfache alphanumerische Zeichenfolge dann sollte es funktionieren.
Sie können auch bei mbstowcs schauen was etwas weniger gewunden ist aber die gleiche Menge an Kontrolle nicht bieten.