CString转换成string的问题
我在网上查找了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> 无构造函数可以接受源类型,或构造函数重载决策不明确
这是怎么回事啊,希望那位高手能帮忙解答下!