码迷,mamicode.com
首页 > 其他好文 > 详细

【VS开发】CString 转为 char *方法大全

时间:2015-11-14 11:13:30      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:visual studio

【VS开发】CString 转为 char *方法大全

标签(空格分隔): 【VS开发】


方法1:

CString strTemp;
char szTemp[128];

strTemp = _T("abckdkfei");
memset( szTemp, 0, sizeof(szTemp) );
strcpy( szTemp, strTemp.GetBuffer(strTemp.GetLength()));

方法2:

char * pchar;
CString str="hello";
pchar=(LPSTR)(LPCSTR)str;

方法3:

char szTemp[500];
CString strTemp = "123456789";
memset(szTemp,0,sizeof(szTemp));
sprintf(szTemp,"%s",strTemp);

方法4:

CString strBuf="awefasdf";
char pBuff[100];
memset(pBuff,0x00,100);
memcpy(pBuff,(LPCSTR)strBuf,strBuf.GetAllocLength());

方法5:

CString strBuf="awefasdf";
char *pBuff=strBuf.GetBuffer(0);

如果以上方法都不可行,且转完之后拷贝只有第一个字符,那么恭喜你,因为大概你的工程是基于UNICODE的,直接进行强制转换肯定不行,你需要使用下面的方法进行:

方法6:
可以用API:WideCharToMultiByte进行转换

方法7:

#include <afxpriv.h>
CString strTest = _T("abcd");
USES_CONVERSION;
LPSTR lpszTest = T2A(strTest);

注意事项:

直接转换在基于MBCS的工程可以,而在基于UNICODE的工程是不行的,CString会以UNICODE的形式来保存数据,强制类型转换只会返回第一个字符

【科普】:
可以参考一下http://blog.csdn.net/liu4584945/article/details/6191370


2015-11-14 调试总结 张朋艺

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/。

【VS开发】CString 转为 char *方法大全

标签:visual studio

原文地址:http://blog.csdn.net/lg1259156776/article/details/49833603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!