我有一个ASCII的CString,想转换为Unicode的CString后再保存,请问怎么转换! 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是.NET,倒是可以用CStringA和CStringW,VC6的话就困难了:CString是根据TCHAR定义的。。你可以改用std::string和std::wstring 至于ASCII转UNICODE,得取出char指针来用MultibyteToWideChar。或者你可以自己做包一个类,封装一下。 pomelowu(羽战士) 我是VC6,“你可以改用std::string和std::wstring”能举个例吗? std::string和std::wstring派生自STL的basic_string模板,功能和CString类似。不过要做std::string和std::wstring之间的转换,还是得取出char指针之后MultibyteToWideChar。如果对字符串处理没有特别的要求的话,干脆就用CHAR*和WCHAR*好了。 void CStringTowstring(wstring &wstr,CString cstr){ string str = cstr; int len = str.size(); wchar_t *pwstr = new wchar_t[len + 1]; // allocate memory for pwstr for(int i = 0; i<=len; i++) pwstr[i] = 0; // fill pwstr with 0 // mbstowcs(pwstr, str.c_str(), len); MultiByteToWideChar(936, 0, str.c_str(), -1, pwstr, len + 1); wstr = pwstr; delete[] pwstr;} wstring 要报错,需要做预处理或加什么头文件么? 用string和wstring需要#include <string>string::c_str()获得char*wstring::c_str()获得wchar_t* #include <string>还是报很多错! #include <string>using namespace std;void CStringTowstring(wstring &wstr,CString cstr){ string str = cstr; int len = str.size(); wchar_t *pwstr = new wchar_t[len + 1]; // allocate memory for pwstr for(int i = 0; i<=len; i++) pwstr[i] = 0; // fill pwstr with 0 // mbstowcs(pwstr, str.c_str(), len); MultiByteToWideChar(936, 0, str.c_str(), -1, pwstr, len + 1); wstr = pwstr; delete[] pwstr;} 关于tooltip的问题 关于自编ActiveX串口通信控件的问题 急求MFC自动生成类的功能~急急急!!!! 消息处理中怎样识别按下键盘的哪一个键? CTreeCtrl控件的使用问题,我在一个Dialog对话框上添加了一个树型控件,我想将他们一起显示到已经创建好的控制条中!请求帮助! 菜鸟提问,请大家帮忙解释一下。 用鼠标改变窗体大小送给窗体的信息是WM_PAINT吗? 比较棘手的问题 怎么恢复DTC服务 谁能提供有大量软件下载的ftp站点和用户密码(送分)! 怎么把RecordView在浮动窗口显示?急在线等!!! 如何拨号连接另一个拨号上网的数据库
我是VC6,“你可以改用std::string和std::wstring”能举个例吗?
{ string str = cstr;
int len = str.size();
wchar_t *pwstr = new wchar_t[len + 1]; // allocate memory for pwstr
for(int i = 0; i<=len; i++) pwstr[i] = 0; // fill pwstr with 0
// mbstowcs(pwstr, str.c_str(), len);
MultiByteToWideChar(936, 0, str.c_str(), -1, pwstr, len + 1);
wstr = pwstr;
delete[] pwstr;
}
#include <string>string::c_str()获得char*
wstring::c_str()获得wchar_t*
还是报很多错!
using namespace std;void CStringTowstring(wstring &wstr,CString cstr)
{ string str = cstr;
int len = str.size();
wchar_t *pwstr = new wchar_t[len + 1]; // allocate memory for pwstr
for(int i = 0; i<=len; i++) pwstr[i] = 0; // fill pwstr with 0
// mbstowcs(pwstr, str.c_str(), len);
MultiByteToWideChar(936, 0, str.c_str(), -1, pwstr, len + 1);
wstr = pwstr;
delete[] pwstr;
}