ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MFC中CString 与 std::string 相互转化

2022-02-14 16:50:12  阅读:302  来源: 互联网

标签:std MFC string -- CString 字符集 strS


-- URL https://www.cnblogs.com/whl2012/p/4811912.html

-- MFC中CString 与 std::string 相互转化
CString实际是CStringT, 也就是模板类,

在UNICODE环境下,实际是CStringW,

在多字符集环境下,实际是CStringA

std::string就是多字符集的.

UNICODE环境下
CStringW-->std::string
CString实际是CStringW,要转换成多字符集,需进行转码。使用WideCharToMultiByte 转换成多字符集,然后再构造std::string

std::string-->CStringW
因为CStringT模板类已经自动做了 char* 到 wchar_t* 的转码。

实例
复制代码
//使用Unicode 字符集
CString strCS("HelloWorld");
USES_CONVERSION;
std::string strS(W2A(strCS)); //CString-->std::string
CString strCStemp;
strCStemp = strS.c_str();//std::string-->CString
复制代码

注意:std::string-->CString时,不可以写在同一行:

CString strCStemp = strS.c_str();//ERROR
多字符集
CString 实际就是CStringA.

复制代码
//CStringA-->std::string
CString strCS("HelloWorld");
std::string strS;
strS = strCS.GetBuffer(0);

//std::string-->CStringA
CString strCStemp = strS.c_str();//注意,可写在同一行
复制代码

标签:std,MFC,string,--,CString,字符集,strS
来源: https://www.cnblogs.com/boyang987/p/15893100.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有