원문: http://blog.naver.com/woorara7/20017399440
/////////////////////////////////////////////////////////////////////
// char -> wchar
wchar_t* CharToWChar(const char* pstrSrc)
{
ASSERT(pstrSrc);
int nLen = strlen(pstrSrc)+1;
wchar_t* pwstr = (LPWSTR) malloc ( sizeof( wchar_t )* nLen);
mbstowcs(pwstr, pstrSrc, nLen);
return pwstr;
}
/////////////////////////////////////////////////////////////////////
// wchar -> char
char* WCharToChar(const wchar_t* pwstrSrc)
{
ASSERT(pwstrSrc);
#if !defined _DEBUG
int len = 0;
len = (wcslen(pwstrSrc) + 1)*2;
char* pstr = (char*) malloc ( sizeof( char) * len);
WideCharToMultiByte( 949, 0, pwstrSrc, -1, pstr, len, NULL, NULL);
#else
int nLen = wcslen(pwstrSrc);
char* pstr = (char*) malloc ( sizeof( char) * nLen + 1);
wcstombs(pstr, pwstrSrc, nLen+1);
#endif
return pstr;
}