关闭

CString转string

129人阅读 评论(0) 收藏 举报
分类:

转换分两种情况,就VS中的配置而言,这两种情况就是宽字符集和UNICODE字符集。

宽字符集情况下的转换:

CString str = _T("123456");
string stdString(str.GetBuffer(0));
str.ReleaseBuffer();

这种转换网上很常见,基本能搜索到的都是这种转换,并不区分字符集,如果是使用的UNICODE字符集这种转换是会报错的,连编译都过不去。

UNICODE字符集情况下的转换:

CString str = _T("123456");
string stdString(W2CA(str.GetBuffer(0)));

str.ReleaseBuffer();

与宽字符集下的转换相比只是多了一步:调用W2CA这个宏。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:32225次
    • 积分:783
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条