¿Cuál es la forma más fácil de convertir una matriz de caracteres a una matriz WCHAR?

StackOverflow https://stackoverflow.com/questions/1846032

  •  12-09-2019
  •  | 
  •  

Pregunta

En mi código, he recibido un const char array como la siguiente:

const char * myString = someFunction();

Ahora quiero posprocesarlos como un wchar array ya que las funciones que utilizo después no manejar cadenas estrechas.

¿Cuál es la forma más fácil de lograr este objetivo?

Finalmente MultiByteToWideChar? (Sin embargo, puesto que es una cadena estrecha que me sale como entrada, que no tiene caracteres de varios bytes => probablemente no es la solución más bella)

¿Fue útil?

Solución

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];

Otros consejos

MultiByteToWideChar funcionará a menos que esté utilizando caracteres extendidos en la cadena estrecha. Si es una cadena alfanumérica claro entonces que debería funcionar bien.

También puede buscar en mbstowcs que es un poco menos complicado, pero no ofrecen el mismo grado de control.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top