Qual é a maneira mais fácil de converter uma matriz de char para uma matriz WCHAR?

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

  •  12-09-2019
  •  | 
  •  

Pergunta

No meu código, eu recebo um const char array como o seguinte:

const char * myString = someFunction();

Agora eu quero processá-lo posteriormente como um wchar array vez que as funções que eu uso depois não lidar com cordas estreitas.

O que é a maneira mais fácil para alcançar este objetivo?

Por fim MultiByteToWideChar? (No entanto, uma vez que é uma string estreita que eu recebo como entrada, ele não tem caracteres de vários bytes => provavelmente não a solução mais bonita)

Foi útil?

Solução

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

Outras dicas

MultiByteToWideChar funcionará a menos que você estiver usando caracteres estendidos na cadeia estreita. Se seu um alfa seqüência numérica simples, em seguida, ele deve funcionar bem.

Você também pode olhar para mbstowcs que é um pouco menos complicada, mas não oferecem a mesma quantidade de controle.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top