VC CString与char*相互转换
来源:互联网 发布:php公司网站源码 编辑:程序博客网 时间:2024/06/06 00:00
VC的字符标准实在是太多了,个人觉得很不爽,就一个CString与char*相互转换的问题,就搞得不可开交,这也可能和我不怎么了解VC字符编码标准有关吧。
char*转CString,有人说,用这样一段代码即可:
CString s = "abcd";char *p = (LPSTR)(LPCTSTR)s;
还有一段,使用这样的方法实现的,只是我还是得不到我想要的结果,一如既往是乱码:
CString str;char* chain = "我是char*";str.Format(_T("%s"),chain);
同时,CString转char*,也用了很多网上的方法,结果还是差强人意。。。。
最后,自己得到的经验是,CString和char*相互转换,使用一个中间字符——TCHAR*可解决,如下是我的一些方法源码:
char *w2c(wchar_t *lpcwszStr){DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);char *psText;psText = new char[dwNum+1];memset(psText,0,dwNum+1);if(psText){WideCharToMultiByte (CP_OEMCP,NULL,lpcwszStr,-1,psText,dwNum,NULL,FALSE);return psText;}else return NULL;}
这个方法是用来将TCHAR*转换成char*的;
wchar_t *c2w(char *lpcszStr){DWORD dwNum = MultiByteToWideChar(CP_OEMCP,NULL,lpcszStr,-1,NULL,0);wchar_t *psText;psText = new wchar_t[dwNum+1];memset(psText,0,dwNum+1);if(psText){MultiByteToWideChar(CP_OEMCP,NULL,lpcszStr,-1,psText,dwNum);return psText;}else return NULL;}
这个方法是用来将char*转换成TCHAR*的;
而CString和TCHAR*之间的转换通过使用这样的一个方法就可以实现:
CString str = _T("我是CString");TCHAR* temp = str.GetBuffer(str.GetLength());
CString str = _T("我是CString");TCHAR* temp = str.GetBuffer(str.GetLength());char* dest = w2c(temp);
当char*转CString时:
char* sourse = "我是char*";TCHAR* temp = c2w(source);CString dest;dest.Format(_T("%s"),temp);
0 0
- VC CString与char*相互转换
- VC程序Unicode字符集下CString与char *相互转换
- Cstring与char*相互转换
- CString与const char*的相互转换
- CString与char * ,string 的相互转换
- CString与string,char*的相互转换
- Unicode 下char*与CString相互转换
- CString与char的相互转换
- LPTSTR与CString、char *与CString的相互转换
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- VC++2005 CString和char*的相互转换
- VC中CString,char*,string,int之间的相互转换
- VC++中CString和char*的相互转换
- VC中BSTR、Char*、CString类型相互转换
- VC编程CString、int、string、char*相互转换
- VC++中CString和char*的相互转换
- VC 字符串的相互转换 CString 和 unsigned char*
- Java应用程序项目的打包与发行
- JSF之AJAX学习
- cocos2d-x学习笔记(三)让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)。
- 网页游戏的云计算架构-刘其炎上海江游CTO
- 图的邻接表存储结构表示法
- VC CString与char*相互转换
- php简单对象与数组的转换
- 在Scientific Linux 6.4(64位)上安装Gitlab 6.1
- myelipcse 不编译 的问题2: 我也不知道为什么
- 写弹窗
- UVa 558 Wormholes / Bellman-Ford
- 【算法】求二进制中1的个数
- HMM(三)
- json格式化查看好工具