MFC中 CString 转换成string 谁能告诉我,万分感谢~

CStringfile1;std::stringfilename;试过很多方法使file1转换成filename如:std::stringfilename(Dlg.m_f... CString file1;
std::string filename;
试过很多方法使file1 转换成filename
如:std::string filename(Dlg.m_filename1.GetBuffer(0));

//char *chr=new char[Dlg.m_filename1.GetLength()];
//WideCharToMultiByte(CP_ACP,0,Dlg.m_filename1.GetBuffer(),-1,chr,Dlg.m_filename1.GetLength(),NULL,NULL);
//filename=chr
都不对啊,怎么办??愁死认了

error C2664: “std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)”: 不能将参数 1 从“wchar_t *”转换为“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> struct“std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it”的构造函数声明为“explicit”
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
展开
 我来答
传说中的顶哥
2011-07-29 · TA获得超过189个赞
知道答主
回答量:75
采纳率:0%
帮助的人:67.3万
展开全部
第一种方法:先利用CString类提供的operator LPCTSTR转换函数将CString对象转换为一个C风格字符串,然后再转换成string类型,例如:
std::basic_string<TCHAR> filename((LPCTSTR) file1);
第二种方法:
std::basic_string<TCHAR> filename(file1.GetBuffer(file1.GetLength()));
其实前两种方法的关键就是str::basic_string<TCHAR>。
第三种方法:这种方法也是我刚从网上找的,在VS2008的MFC的工程中编译通过,在别的地方调试可能要添加相关的头文件,CT2A 它定义在"atlconv.h"中。
CT2A xx(file1);
filename = xx;
以上三种方法我在VS2008种全部编译通过。
给分吧。
luosiyong
2011-07-22 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1631万
展开全部
你这个比较特别,因为你的CString是使用的UNICODE,使用CStringA函数。
转换如下:
CString cstr = L"测试";
std::string str = CStringA(cstr);
MessageBoxA(NULL, str.c_str(), "", MB_OK);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6b69700
2011-07-22 · TA获得超过411个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:203万
展开全部
filename= string(file1.GetBuffer(file1.GetLength()));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友01c3c6a
2011-07-21 · 超过18用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:55.8万
展开全部
uses_convertion;
w2a宏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式