CString转换成string的问题

quanz_lhi quanz_lhi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在网上查找了CString转换成string的方法,msdn官网的参考资料是这样写的:

CString orig("Hello, World!");
// Convert to a basic_string
string basicstring(orig);

地址是http://msdn2.microsoft.com/zh-cn/library/ms235631(VS.80).aspx

可我在自己的程序中代码如下:
CString sTmp = FindFileData.cFileName;
std::string s(sTmp);
编译出错:
\Common.cpp(83) : error C2664: “std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)”: 不能将参数 1 从“ATL::CString”转换为“std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it”
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

将原始代码稍微更改如下:
CString sTmp = FindFileData.cFileName;
std::string s=sTmp;
编译出错:
1>.\Common.cpp(84) : error C2440: “初始化”: 无法从“ATL::CString”转换为“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> 无构造函数可以接受源类型,或构造函数重载决策不明确

这是怎么回事啊,希望那位高手能帮忙解答下!
...全文
评论 6
收藏 已收藏
分享
返回顶部
quanz_lhi
VC/MFC 16,550 成员 421,606 内容