VC++语法理解

来源:互联网 发布:java log4j 用法 编辑:程序博客网 时间:2024/05/01 01:39

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













原创粉丝点击