Dovrei trasformare un char* in un wchar_t* in c++.
Il tutto sembra funzionare, ma non sono certo che sia il modo migliore (soprattutto su come ritorno il risultato e sull'uso dei puntatori).
Qualcuno può consigliarmi?
codice:wchar_t* MultibyteToUnicode(char* multibyte) { size_t sl = strlen(multibyte); // Ottengo lunghezza della stringa multibyte if(sl < 0) return NULL; // Se la lungheza della stringa è < 0 ritorno NULL size_t wsl = mbstowcs(NULL,multibyte, sl + 1); //memoria necessaria if(wsl == -1) return NULL; // Se mbstowcs fallisce ritorno NULL wchar_t* unicode = new wchar_t[wsl + 1]; size_t wsl2 = mbstowcs(unicode,multibyte, sl + 1); // Effettuo la conversione if(wsl2 == -1) return NULL; // Se la conversione fallisce ritorno NULL return unicode; // Restituisco la stringa unicode }