在C#项目中使用OpenH264 DLL

在C#项目中使用OpenH264 DLL,c#,c++,h.264,openh264,C#,C++,H.264,Openh264,我正在通过UDP接收H264流。我想解码流,这样我就可以发送帧到OpenCV或任何东西。我在这里看到了思科的开源H264解码器: 通过一点努力,我获得了在VisualStudio2019中构建的解码器解决方案,并使用从原始UDP数据报创建的文件从命令行对其进行了测试。它起作用了 现在我想弄清楚如何在C#项目中使用解码器DLL(welsdec.DLL)。上一次我在Windows中做了什么严肃的C++,回到了DirectShow和Delphi 5天,所以我完全迷失了。 H264项目中没有任何内容是使

我正在通过UDP接收H264流。我想解码流,这样我就可以发送帧到OpenCV或任何东西。我在这里看到了思科的开源H264解码器: 通过一点努力,我获得了在VisualStudio2019中构建的解码器解决方案,并使用从原始UDP数据报创建的文件从命令行对其进行了测试。它起作用了

现在我想弄清楚如何在C#项目中使用解码器DLL(welsdec.DLL)。上一次我在Windows中做了什么严肃的C++,回到了DirectShow和Delphi 5天,所以我完全迷失了。 H264项目中没有任何内容是使用_declspec(dllexport)显式导出的。这正常吗?将DLL作为项目引用添加到C#项目不起作用(“引用无效或不受支持”)


我猜DLL是非托管的。我可以直接用C#来消费吗?在C++ Cx库中,我是否需要重写DLL,或者将其包起来,以使它有效?

< P>可以在.*中显式使用一个非托管DLL。 您还可以编写一个脚本来简化托管C#应用程序与本机DLL之间的调用。这是per评论采取的方法


看起来H264项目使用
declspec
来代替装饰导出。您仍然可以使用上述方法访问这些公开导出的函数。

该项目非常完美。即使我不直接使用它,它也是如何设置解码器的一个很好的参考。非常感谢你!感谢您向我指出模块定义文件。这证实了我在使用dependency walker时所发现的情况:因此它应该像在DllImport属性中获得正确的签名一样简单。