欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2024/7/19 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【VS开发】CString 转为 char *方法大全 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

【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 调试总结 张朋艺

转载于:https://www.cnblogs.com/huty/p/8518938.html

总结

以上是生活随笔为你收集整理的【VS开发】CString 转为 char *方法大全的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。