最近在做C#上进行H264解码的网络摄像头,通过各种折腾,还是没法解决,无奈之下只好使用在C#下加载ffmpeg的动态库进行,在加载的时候说不遇到问题那是不可能的。
下面就我遇到的问题和解决方案进行发表:
1.加载方法
很多人都想着通过右键引用的方法进行dll的加载,当然那是简便的方法,不过对于用C++编译的动态库貌似这方法行不通,往往会提示“未能添加XXX.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件”。因此,本人想通过右键引用的方法行不通。
囧么办呢?
用DllImport加载吧。
[DllImport("XXX.dll")]
public static extern void XXX();
当然,DllImport还有一些参数和方法可以避免一些问题的,我也没仔细研究透在这先不去介绍。
通过这个加载之后你只要把相关的dll放到bin\Debug或bin\Release目录下就行了。