2 beihuanlihe130 beihuanlihe130 于 2016.03.07 19:01 提问

用WPF做VLC视频播放器,如何解决.Net Framework版本的转换(只能使用2.0吗?)

图片说明
当进行如上调用时,会出现如下错误信息
对 PInvoke 函数“ClientLibrary.Controls.LibVlcAPI::libvlc_new”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
_最开始项目是framework2.0框架,现在是framework4.5框架,如何进行转换才能解决这个问题呀?

2个回答

caozhy
caozhy   Ds   Rxr 2016.03.07 19:11

你确认你的代码在2.0上没有问题?光看这代码,2.0和4.0应该没有区别。检查下你的dll本身是不是有变动。

beihuanlihe130
beihuanlihe130   2016.03.07 19:37

[DllImport("libvlc.dll", EntryPoint = "libvlc_new", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[SuppressUnmanagedCodeSecurity]
private static extern IntPtr libvlc_new(int argc, IntPtr argv);

            改一下参数就可以了好像
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!