2008年9月3日 星期三

[轉貼]char和wchar的轉換

因為在之前的開發中~都是使用char宣告變數比如在用sprintf~~textout等函式都是用char的型態
但在使用vs2005之後都要改變成wchar才能執行雖然知道字串可以使用_T("字串")來轉成wchar
但如果是char和wchar之間的轉換有什麼方法嗎?

MultiByteToWideChar與WideCharToMultiByte

EX:
WCHAR * AnsiToUnicode(const char *str)
{
if( str == NULL ) return NULL;
int len = (int)strlen(str);
int nLen = ::MultiByteToWideChar(CP_ACP, 0,(char *)str, -1, NULL, NULL);
LPWSTR lpszW = new WCHAR[nLen];
::MultiByteToWideChar(CP_ACP, 0,(char *)str, len, lpszW, nLen);
lpszW[nLen-1] = 0;
return lpszW;
}

//回傳指標用完記得殺掉

沒有留言: