读书人

WideCharToMultiByte // error有关问题

发布时间: 2013-08-04 18:26:16 作者: rapoo

WideCharToMultiByte // error问题CString转化wchar_t


error C2664: “WideCharToMultiByte” : 不能将参数 5 从“ATL::CSimpleStringT<BaseType,t_bMFCDLL>::PXSTR”转换为“LPSTR”
with
[
BaseType=wchar_t,
t_bMFCDLL=true
]
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换



wchar_t array_[100] = "abcdefg";
CString temp;

WideCharToMultiByte(CP_ACP,0,array_,3,temp.GetBuffer(0),3,NULL,NULL);


[解决办法]
引用:
wchar_t 无法直接转化为 cstring吗????????
Quote: 引用:

不太明白楼主的意思,
WideCharToMultiByte 我一直都是下面这样用,unicode转化为多字节。。

//--------------------
//** 函数名称: Convert::wtoc
//** 功能描述: wchar_t* to char*
//** 参 数: 无
//** 返 回 值: 无
//** 日 期: 2013年6月26日
//** 描 述: 见功能描述
//--------------------

char* Convert::wtoc(wchar_t* wc)
{
int wlen = wcslen(wc);
int len = WideCharToMultiByte(CP_ACP, 0, wc, wlen, NULL, 0, NULL, NULL);
char* m_char=new char[len + 1];
WideCharToMultiByte(CP_ACP, 0, wc, wlen, m_char, len, NULL, NULL);
m_char[len] = '\0';
return m_char;
}

你想要干嘛?搞不懂了。

读书人网 >C++

热点推荐