MFC之CString与const char* string 转换 | 您所在的位置:网站首页 › cstring怎么转化为string › MFC之CString与const char* string 转换 |
MFC开发时经常会遇到CString、string/std::string、char*等类型相互转换的问题,现将一些思考与心得记下来与大家分享:
一、CString强制类型转换为const char*,在变量前加上:(char *)(LPCTSTR),这样做虽不会报错,但其转换后的值可能是乱码,不推荐这样做! 二、利用中间变量(string类型),原理: 1)CString类型不能自动装换为const char*。 2)const char*类型可自动装换为CString。 3)std::string类型调用c_str()方法就可轻松转换为const char*。 4)CString与std::string相互转换: CString cs("Hello"); std::string s((LPCTSTR)cs);
std::string s("Hello"); CString cs(s.c_str()); 三、CString可能是unicode编码(CString通过宏来确定到底是CStringA还是CStringW),因此应该先将之转化为mbcs编码,也就是CStringA CString s = _T("abc"); std::string str = CStringA(s); |
CopyRight 2018-2019 实验室设备网 版权所有 |