用C函數來轉換Unicode和ANSI文字
char sChar[MAX_PATH];
const WCHAR wChar[] = L"我的朋友";
// 把wChar這個Unicode字符串轉換成ANSI字符串,保存到sChar,并且返回ANSI的字符串大小,如果失敗,則返回-1
? wcstombs(sChar, wChar, MAX_PATH);
這樣是運行不過不去的,總是返回-1。
后來經人提醒,需要在調用wcstombs之前要先設置代碼頁:
char sChar[MAX_PATH];
const WCHAR wChar[] = L"我的朋友";
// 設置代碼頁為默認代碼頁
? _tsetlocale(LC_ALL,_T(""));
// 把wChar這個Unicode字符串轉換成ANSI字符串,保存到sChar,并且返回ANSI的字符串大小,如果失敗,則返回-1
? wcstombs(sChar, wChar, MAX_PATH);
這樣就可以了!不用調用煩人的WideCharToMultiByte!多好?。?br />相反的函數:mbstowcs,可以從ANSI轉換到Unicode