转自:http://blog.csdn.net/rocklee/article/details/47107735
char 转wchar_t
wchar_t* CharToWchar(char* c) { int len = MultiByteToWideChar(CP_ACP, 0, c, strlen(c), NULL, 0); wchar_t* m_wchar = new wchar_t[len + 1]; MultiByteToWideChar(CP_ACP, 0, c, strlen(c), m_wchar, len); m_wchar[len] = '\0'; return m_wchar; }返回结果用完要free掉.
调用:
char cstr[]="i am char string";
wchar_t *wcstr=CharToWchar(cstr);
wchar_t转char
char* WcharToChar(wchar_t* wc) { int len = WideCharToMultiByte(CP_ACP, 0, wc, wcslen(wc), NULL, 0, NULL, NULL); char *m_char = new char[len + 1]; WideCharToMultiByte(CP_ACP, 0, wc, wcslen(wc), m_char, len, NULL, NULL); m_char[len] = '\0'; return m_char;}
返回结果用完要free掉.
调用:
wchar_t wcstr[]=_L("i am char string");
char *cstr=WcharToChar(wcstr);