2009-12-04 2 views
0

, 나는 다음과 같은 const char array가 나타납니다 문자 배열을 WCHAR 배열로 변환하는 가장 쉬운 방법은 무엇입니까? 내 코드에서

const char * myString = someFunction(); 

지금 내가 좁은 문자열을 처리하지 않습니다 이후에 사용하는 기능부터 wchar array로 사후 처리하고자합니다.

이 목표를 달성하는 가장 쉬운 방법은 무엇입니까?

결국 MultiByteToWideChar? (그러나 좁은 문자열이기 때문에 입력으로 받아들이 기 때문에 멀티 바이트 문자가 아님 => 아마도 가장 아름다운 해결책이 아님)

답변

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

좁은 문자열에 확장 문자를 사용하지 않으면 MultiByteToWideChar가 작동합니다. 그것의 일반 영숫자 문자열을 누른 다음 잘 작동합니다.

너는 조금 덜 복잡하지만 동일한 양의 제어를 제공하지 않는 mbstowcs를 볼 수도 있습니다.