建筑gstreamer窗户上的锐利胶水
我想将我的Windows WPF C#应用程序升级为使用GStreamer 1.4而不是GStreamer 0.10。 我在Linux上构建了gstreamer-sharp,没有任何错误,dll大小为1.24MB,这似乎是合理的,当我从C#应用程序中引用gstreamer-sharp.dll时,我使用的所有类和方法名称都已解析。好 不过,我在窗户上粘胶水时遇到了问题。我从gstreamer sharp获取了一个Visual Studio项目模板,将输出从应用程序更改为库,将gobject.c和生成的.c从gstreamer sharp添加到项目中,添加了一个到windk的路径以解析msvcrt_winxp.obj,并构建了libgstreamer-1.0-0.dll,其大小为50.5 kB(看起来很小,不应该是3倍大吗?)。 当我尝试将其用于C#应用程序时,调用Gst.application.InitCheck(ref args)时会出现一个错误: 在DLL“libgstreamer-1.0-0.DLL”中找不到名为“gst\u value\u list\u get\u type”的入口点 难怪它抱怨说,generated.c中不存在这样的方法。建筑gstreamer窗户上的锐利胶水,gstreamer,Gstreamer,我想将我的Windows WPF C#应用程序升级为使用GStreamer 1.4而不是GStreamer 0.10。 我在Linux上构建了gstreamer-sharp,没有任何错误,dll大小为1.24MB,这似乎是合理的,当我从C#应用程序中引用gstreamer-sharp.dll时,我使用的所有类和方法名称都已解析。好 不过,我在窗户上粘胶水时遇到了问题。我从gstreamer sharp获取了一个Visual Studio项目模板,将输出从应用程序更改为库,将gobject.c和生
我做错了什么?gstreamer-sharp没有在所有对本机的调用中使用glue库。glue库仅用于访问Gobject和不透明类型中的字段。粘合库只是返回字段的填充,以计算托管端字段的偏移量。胶水的大小看起来不错,因为它只是一个用来计算偏移量的小包装。 该错误更可能是在使用应用程序类时引起的,因为它初始化access上的所有GstValue类型。也许windows二进制文件已损坏,并且不包含gst\u value\u list\u get\u type,这会很奇怪。你能试着写一个小的C程序来调用这个函数,看看是否有错误。如果C程序工作正常,那么.NET可能无法找到您的库,尽管在这种情况下通常会出现DllNotFoundException
您可以在此处找到一个包含visual studio项目的存储库,用于胶水在被另一个项目分散注意力后,我将回到GStreamer。二进制文件还可以,gstreamersharp还可以,是胶水错了。Sebastian给我发了一个你的VS2013 libgstreamersharpglue项目的链接,我在我的机器上制作了胶水,一切都开始工作了!如果您编辑答案并将链接发布到存储库,我会将其标记为正确。非常感谢您将该项目公之于众,它解决了我所有的问题,我的VS2010胶水解决方案一定出了问题。