首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

WideCharToMultiByte // error有关问题CString转化wchar_t

2013-08-04 
WideCharToMultiByte // error问题CString转化wchar_terror C2664: “WideCharToMultiByte” : 不能将参数 5

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;  
}

你想要干嘛?搞不懂了。

热点排行