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、静态数据成员和函数