1、TCHAR、Char和CString之間的轉換:
TCHAR是MFC中對Char的封裝,當字元集是unicode時是雙位元組wchar,在其他字元集下為單位元組char。
WideCharToMultiByte
函數功能:該函數映射一個unicode字元串到一個多位元組字元串。 函數原型: int WideCharToMultiByte( UINT CodePage, //指定執行轉換的代碼頁 DWORD dwFlags, LPCWSTR lpWideCharStr, //指定的寬位元組字元串的緩沖區 int cchWideChar, //指定由參數lpWideCharStr指向的緩沖區的字元個數 LPSTR lpMultiByteStr, //指向接收被轉換字元串的緩沖區 int cchMultiByte, //指定由參數lpMultiByteStr指向的緩沖區最大值 LPCSTR lpDefaultChar, LPBOOL pfUsedDefaultChar ); 參數: CodePage:指定執行轉換的代碼頁,這個參數可以為系統已安裝或有效的任何代碼頁所給定的值。你也可以指定其為下面的任意一值: CP_ACP:ANSI代碼頁;CP_MACCP:Macintosh代碼頁;CP_OEMCP:OEM代碼頁; CP_SYMBOL:符号代碼頁(42);CP_THREAD_ACP:目前線索ANSI代碼頁; CP_UTF7:使用UTF-7轉換;CP_UTF8:使用UTF-8轉換。
char->TCHAR的轉換:
char a[255];
TCHAR b[255];
int length = Mutilbytetowidechar(CP_ACP,0,a,strlen(a)+1,null,0);
Mutilbytetowidechar(CP_ACP,0,a,strlen(a)+1,b,length);
TCHAR->char的轉化:
char a[255];
TCHAR b[255];
int length = Widebytetomutilchar(CP_ACP,0,b,strlen(b)+1,null,0);
Mutilbytetowidechar(CP_ACP,0,b,strlen(b)+1,a,length);
CString->TCHAR * 或 char*的轉換:
CString cs = "abdcd";
int length = cs.GetLength();
TCHAR tch[length+1];
lstrcpy(tch,cs.GetBuffer(length));
cs.RealeseBuffer();
CString->const char*的轉換:
CString類提供一個operator LPCTSTR把CString類型轉換為LPCTSTR類型。
2、構造函數、copy構造和assignment構造
3、靜态資料成員和函數