首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

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

2012-04-03 
[求助]VLC ActiveX控件不能播放中文文件名的问题VLC ActiveX只能播放英文文件,请问怎么解决啊?下面是我的

[求助]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

热点排行