C#调用C++DLL,传一个中文的文件路径给C++DLL无效。

嘻嘻哈哈才哥哥 2014-03-26 03:48:37
现在有一个DLL是播放器,需要给DLL传一个视频文件路径。
C++定义的接口HH5PLAYER_OpenStreamFileM(USHORT nPort,LPCTSTR filelist[], int filenum, DWORD &nTimeLength);
C#里声明如下
[DllImport("MP6DLL\\HH5PlayerSDK.dll")]
public static extern int HH5PLAYER_OpenStreamFileM(int nPort,string[] filelist, int filenum, ref int nTimeLength);
调用时
string[] str=new String[1];
str[0]="D:\\播放数据\\kk.mp6";
int times=0;
int EndSource= PublicDLL.HH5PLAYER_OpenStreamFileM(0,str, 1, reftimes);
这种情况下使用,不会报错,但是视频也播放不了,OpenStreamFileM返回EndSource=-2;
如果把str[0]="D:\\播放数据\\kk.mp6";换成str[0]="D:\\PlayVideo\\kk.mp6";
就可以调用成功,OpenStreamFileM返回EndSource=0;
视频也能播放了。
试用很多编码转换的规则,转换成UTF8,UTF32,等,都没有效果。哪位大哥大姐给个方法。指条明路啊。
...全文
228 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧