VS中关于CString 和 char *之间的转换问题
2016-07-09 21:02
323 查看
1. 工程属性中字符集选择为 “未设置”或者“使用多字节字符集”时 CString与char *之间的转换比较简单
(1)CString 转 char*
char* buf ;
CString str;
buf = str.GetBuffer(str.GetLength());
(2) char *转CString
str = (LPCTSTR)buf;
2. 工程属性字符集选择为“UNICODE”时
(1)CString转char *
char c_tmp[MAX_PATH]; //存放char的数组c_tmp
CString str;//要转换的CString
// sz表示待转换字符串的缓冲区所必需的字节数
int sz = WideCharToMultiByte(CP_ACP,0,str.GetBuffer(),-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,str.GetBuffer(),str.GetLength()+1,c_tmp,sz,NULL,NULL);
此时c_tmp就成功从CString转换成char *
(2) char* 转 CSting
char *buf = "hello";
CString str(buf);
(1)CString 转 char*
char* buf ;
CString str;
buf = str.GetBuffer(str.GetLength());
(2) char *转CString
str = (LPCTSTR)buf;
2. 工程属性字符集选择为“UNICODE”时
(1)CString转char *
char c_tmp[MAX_PATH]; //存放char的数组c_tmp
CString str;//要转换的CString
// sz表示待转换字符串的缓冲区所必需的字节数
int sz = WideCharToMultiByte(CP_ACP,0,str.GetBuffer(),-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,str.GetBuffer(),str.GetLength()+1,c_tmp,sz,NULL,NULL);
此时c_tmp就成功从CString转换成char *
(2) char* 转 CSting
char *buf = "hello";
CString str(buf);
相关文章推荐
- Visual C++中MFC消息的分类
- MFC中Radio Button的用法详解
- MFC对话框中添加状态栏的方法
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法
- MFC实现在文件尾追加数据的方法
- MFC之ComboBox控件用法实例教程
- 使用VS开发 Node.js指南
- vs 不显示行号的操作方法
- MFC绘制不规则窗体的方法
- linux vs linux的优势
- IE8引发 VS2005/2008 MFC向导出错的解决方案
- 先装VS再装IIS时出错的解决方法
- vs代码段快捷键设置(图文)
- string,CString,char*之间的转化
- MFC实现全屏功能代码实例
- 使用VS2010创建MFC ActiveX工程项目