关于 WideCharToMultiByte 函数的使用有关问题,求解决!
关于 WideCharToMultiByte 函数的使用问题,急求解决!!!
在VC6.0的MFC工程中使用WideCharToMultiByte我是这么写的:
TCHAR szTempInfo[400] = {0};
if (ititle< 400)
{
//歌曲标题
ReadFile(hFile, szTempInfo,ititle, &dwBytesRead, NULL);
WideCharToMultiByte(CP_OEMCP,NULL,szTempInfo,-1,pBuf->Title,ititle,NULL,FALSE);
}
出现如下错误 error C2664: 'WideCharToMultiByte' : cannot convert parameter 3 from 'char [400]' to 'const unsigned short *'
该如何解决??
------解决方案--------------------
在VC6.0的MFC工程中使用WideCharToMultiByte我是这么写的:
TCHAR szTempInfo[400] = {0};
if (ititle< 400)
{
//歌曲标题
ReadFile(hFile, szTempInfo,ititle, &dwBytesRead, NULL);
WideCharToMultiByte(CP_OEMCP,NULL,szTempInfo,-1,pBuf->Title,ititle,NULL,FALSE);
}
出现如下错误 error C2664: 'WideCharToMultiByte' : cannot convert parameter 3 from 'char [400]' to 'const unsigned short *'
该如何解决??
------解决方案--------------------
- C/C++ code
WCHAR szTempInfo[400] = {0};
------解决方案--------------------
TCHAR是根据_UNICODE这个宏的定义与否来决定类型的,定了了,则是wchar_t,没定义,则是char
看楼主这种情况是工程选项里使用的非unicode编码吧,所以把TCHAR解释成了char了,而那个函数第三个参数又必须是宽字符,所以
把TACHAR改为
wachar_t szTempInfo[400] = {0};即可
------解决方案--------------------
在工程->设置里->c/c++,与处理程序定义,把_MBCS改成-UNICODE,因为wma文件是unicode组成的