返回信息流TCHAR* StringToTCHAR(string& s)
{
tstring tstr;
const char* all = s.c_str();
int len = 1 + strlen(all);
wchar_t* t = new wchar_t[len];
if (NULL == t) throw std::bad_alloc();
mbstowcs(t, all, len);
return (TCHAR*)t;
}
中文部分还是返回为乱码
我自己写了一下:
TCHAR* StringToTCHAR(std::string &s)
{
TCHAR t[_MAX_PATH];
if (NULL == t) throw std::bad_alloc();
for(int i = 0;i < s.size();i++)
{
t[i] = s[i];
}
return t;
}
也不行...
这是一条镜像帖。来源:北邮人论坛 / cpp / #40237同步于 2010/6/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
std::string怎么转换成TCHAR
greenMay
2010/6/5镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
TCHAR在定义了_UNICODE才是wchar_t,不然还是char,lz这么做是有问题的
【 在 greenMay (马甲||马甲) 的大作中提到: 】
: TCHAR* StringToTCHAR(string& s)
: {
: tstring tstr;
: ...................
【 在 FadeToBlack 的大作中提到: 】
: TCHAR在定义了_UNICODE才是wchar_t,不然还是char,lz这么做是有问题的
: 【 在 greenMay (马甲||马甲) 的大作中提到: 】
: : TCHAR* StringToTCHAR(string& s)
: ...................
那应该在那里定义unicode?