현재 진행중에 있는 프로젝트에서 CString -> wchar_t 으로 변환하여 스트링을 복사해야하는 상황을 맞이하게 되었다.

 

이리저리 찾아보다가, 한 블로그에서 그 실마리를 찾았는데,

 

참조(네이버블로그) : http://blog.naver.com/skywood1?Redirect=Log&logNo=100129022023

 

바로 위에 링크를 건 블로그에서 그 해답을 찾을 수 있었다.

 

 

 

 

size_t mbstowcs(

wchar_t *wcstr,        //Output

const char *mbstr,    //Input

size_t Count            //Size

);

 

해답은 바로 이 함수인데, 멀티바이트 스트링(MBS)을 와이드 캐릭터 스트링(WCS)으로 변경해주는 함수이다.

 

참조(MSDN) : http://msdn.microsoft.com/ko-kr/library/k1f9b8cy.aspx

 

 

 

 

하지만 나는 Cstring 에서 wchar_t로 변경해야하기때문에, 한번 더 변환을 해줘야했다.

 

CString str="test";
char *text = (char*)((LPCSTR)str); 

 

 

 

 

따라서 결과적으로 CString -> char* -> wchar_t총 3번변경을 해줌으로써 문제를 해결할 수 있었다.

 

CString str="Hand/Finger Tracking and Gesture Recognition";
wchar_t wstr[256] = {};

int nLen = str.GetLength()+1;

mbstowcs(wstr,(char*)((LPCSTR)str), nLen);

 

 

 

 

Posted by Tommy™
,