CString转换为string的做法

http://zhidao.baidu.com/question/108564496.html

 

CString wo("xxxxcc");
string s;
s=wo.GetBuffer();
//失败了!!!
//错误信息
1>f:/c++试验/count_machine/count_machine/count_machinedlg.cpp(185) : error C2679: 二进制“=”: 没有找到接受“wchar_t *”类型的右操作数的运算符(或没有可接受的转换)
1>        f:/vs 2005 主程序目录/vc/include/xstring(875): 可能是“std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const std::basic_string<_Elem,_Traits,_Ax> &)”
1>        with
1>        [
1>            _Elem=char,
1>            _Traits=std::char_traits<char>,
1>            _Ax=std::allocator<char>
1>        ]
1>        f:/vs 2005 主程序目录/vc/include/xstring(880): 或“std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const _Elem *)”
1>        with
1>        [
1>            _Elem=char,
1>            _Traits=std::char_traits<char>,
1>            _Ax=std::allocator<char>
1>        ]
1>        f:/vs 2005 主程序目录/vc/include/xstring(885): 或“std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(_Elem)”
1>        with
1>        [
1>            _Elem=char,
1>            _Traits=std::char_traits<char>,
1>            _Ax=std::allocator<char>
1>        ]
1>        试图匹配参数列表“(std::string, wchar_t *)”时
--------------------------------------------------------------------

CString wo("xxxxcc");
string s(wo.GetBuffer());
//失败了
//错误信息
1>f:/c++试验/count_machine/count_machine/count_machinedlg.cpp(184) : error C2664: “std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::allocator<_Ty> &)”: 不能将参数 1 从“wchar_t *”转换为“const std::allocator<_Ty> &”
1>        with
1>        [
1>            _Elem=char,
1>            _Traits=std::char_traits<char>,
1>            _Ax=std::allocator<char>,
1>            _Ty=char
1>        ]
1>        and
1>        [
1>            _Ty=char
1>        ]
1>        原因如下: 无法从“wchar_t *”转换为“const std::allocator<_Ty>”
1>        with
1>        [
1>            _Ty=char
1>        ]
1>        无构造函数可以接受源类型,或构造函数重载决策不明确
-------------------------------------------------------------------

//还有 我把CString所有的成员函数都看了一遍,没有一个的返回值是string的
//那如何才能实现CString到 string的转换啊?
//如果能把CString转成string的话 我就可以有很多处理可以做,
//因为学C++的时候都是用string的

问题补充:
回 vssvss:Format()用这个函数要包含什么头文件吧?
报错:
error C3861: “Format”: 找不到标识符
---
回aaa833: 
 CString wo("xxxxcc");
 string s;
 s=(LPCTSTR)wo;
//报错
二进制“=”: 没有找到接受“LPCTSTR”类型的右操作数的运算符(或没有可接受的转换)operator =(const std::basic_string<_Elem,_Traits,_Ax> &)”
//。。。。。。。。。
1>        试图匹配参数列表“(std::string, LPCTSTR)”时

回aaa833: 
 CString wo("xxxxcc");
 string s;
 s=(LPCTSTR)wo;
//报错
1>f:/c++试验/count_machine/count_machine/count_machinedlg.cpp(185) : error C2679: 二进制“=”: 没有找到接受“LPCTSTR”类型的右操作数的运算符(或没有可接受的转换)
可能是“std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const std::basic_string<_Elem,_Traits,_Ax> &)”
//。。。。。。。。。
1>        试图匹配参数列表“(std::string, LPCTSTR)”时 

不行啊~~~大家答的答案都报错了~!!!!!!!!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值