当前位置: 代码迷 >> 多媒体/流媒体开发 >> []VLC ActiveX控件不能播放中文文件名的有关问题
  详细解决方案

[]VLC ActiveX控件不能播放中文文件名的有关问题

热度:3312   发布时间:2013-02-26 00:00:00.0
[求助]VLC ActiveX控件不能播放中文文件名的问题
VLC ActiveX只能播放英文文件,请问怎么解决啊?
下面是我的代码:

//取得控件的playlist对象
AXVLC::IVLCPlaylistPtr plo(reinterpret_cast<AXVLC::IVLCPlaylist*>(mVLC.get_playlist()), false);
//往playlist里添加文件
CString file("file:///c:\你好.avi");
plo->add(file.GetString());
播放
plo->play();

网上说要转成UTF8
我是这么转的:
wchar_t* wszString = (wchar_t *)file.GetString();

int u8Len = ::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), NULL, 0, NULL, NULL); 

char* szU8 = new char[u8Len + 1]; 
//转换 
  //unicode版对应的strlen是wcslen 
  ::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), szU8, u8Len, NULL, NULL); 
  //最后加上'\0' 
  szU8[u8Len] = '\0'; 

plo->add(szU8);

可还是不行。

------解决方案--------------------------------------------------------
wchar_t* wszString = (wchar_t *)file.GetString();
这个地方不能强制转换,使用MultiByteToWideChar转换成unicode,然后再转换成utf-8
  相关解决方案