Qual è il modo più semplice per convertire un array di caratteri a un array WCHAR?
Domanda
Nel mio codice, ricevo un const char array
come il seguente:
const char * myString = someFunction();
Ora voglio postelaborare come wchar array
poiché le funzioni che uso poi non maneggiare le stringhe strette.
Qual è il modo più semplice per raggiungere questo obiettivo?
Alla fine MultiByteToWideChar? (Tuttavia, dal momento che è una stringa stretta che ricevo come input, non ha i caratteri multibyte => probabilmente non la più bella soluzione)
Soluzione
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];
Altri suggerimenti
MultiByteToWideChar funzionerà a meno che non si utilizza caratteri estesi nella stringa stretta. Se un alfa stringa numerica piana allora dovrebbe funzionare bene.
si può anche guardare mbstowcs che è un po 'meno complicata, ma non offre la stessa quantità di controllo.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow