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);//也可以实现转换
//一、多字节字符集情况下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);//也可以实现转换
相关文章推荐
- 从数据库(wm_concat函数)接收值变成oracle.sql.CLOB@xxxxx类型的处理方法
- 对于团队项目的意见及项目需求的分析
- 哈希表(hashtable)
- 5.4用形态学滤波器检测边缘和角点
- linux图形界面命令行切换
- 【学习笔记----数据结构04-单循环链表】
- 84.#define #if #ifdef #ifndef 作用和区别
- 教你透彻了解红黑树
- 由RGB到HSV颜色空间的理解
- 对美国某核武器研究项目站点的一次渗透测试 2013-09-19 12:59
- java List 排序 Collections.sort() 对 List 排序
- RN(react native)入坑指南-03,运行官方示例UIExplorer
- xcoj 1227 电梯
- Servlet 中文乱码问题及解决方案剖析
- VTK显示中文
- 实际用户和有效用户的
- 引入cocoaPods后找不到头文件,实际头文件就包含在Pods下
- linux开机默认进入命令界面
- HTTP缓存原理介绍
- 正则表达式详解以及用正则判断数值