您的位置:首页 > 其它

CString转换为char*,在多字节与宽字节两种情况下

2016-04-08 17:24 232 查看
 CString str("我爱中国");

 //一、多字节字符集情况下CString转换为char*

 //char *s=(LPSTR)(LPCTSTR)str;

 //二、Unicode字符集情况下CString转换为char*

   //①

 int n = str.GetLength(); //按字符计算,str的长度

 int len = WideCharToMultiByte(CP_ACP,0,str,n,NULL,0,NULL,NULL);//按Byte计算str长度

 char *pChStr1 = new char[len+1];//按字节为单位

 WideCharToMultiByte(CP_ACP,0,str,n,pChStr1,len,NULL,NULL);//宽字节转换为多字节编码

 pChStr1[len] = '\0';//不要忽略末尾结束标志

   //②使用函数:T2A,W2A(未尝试)

  USES_CONVERSION;//声明标示符

  //调用函数,T2A和W2A均支持ATL和MFC中字符转换

  //char *pChStr2 = T2A(str);

  char *pChStr2 = W2A(str);//也可以实现转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: