用VS2010的C#winform调用VLC 1.1.11 ,出现问题如下。
第一,按ctrl+F5,点击获取视频出现:如图:第二,如果用调试,在“coreHandle=libvlc_new(argv.Length,ReturnIntPtr(arg...
第一,按ctrl+F5,点击获取视频出现:如图:
第二,如果用调试,在“coreHandle = libvlc_new(argv.Length, ReturnIntPtr(argvbytes, argv.Length), ref ex);”都会出现“对 PInvoke 函数“VideoTest2!VideoTest2.Core::libvlc_new”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。” 展开
第二,如果用调试,在“coreHandle = libvlc_new(argv.Length, ReturnIntPtr(argvbytes, argv.Length), ref ex);”都会出现“对 PInvoke 函数“VideoTest2!VideoTest2.Core::libvlc_new”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。” 展开
2个回答
展开全部
VLC 1.1.11版本的libvlc.dll的函数调用与之前的版本是不同的,
[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr libvlc_new(int argc, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] string[] argv);
可以看出现在libvlc_new的调用参数和返回类型与以前是有差距的
[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr libvlc_new(int argc, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] string[] argv);
可以看出现在libvlc_new的调用参数和返回类型与以前是有差距的
参考资料: NVLC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去掉强命名就好了
追问
如何去掉强命名?不在了啊?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询