C#中加载dll的问题

来源:互联网 发布:信用卡淘宝套现技巧 编辑:程序博客网 时间:2024/05/17 13:39

最近在做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目录下就行了。


行了?

如果能用那就行了呗,还想什么,如果不能用呢,废话,那当然不行了。


2.“无法加载 DLL“XXX.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。”

遇到这类问题可以考虑两个方面

(1). 路径是否正确

在C#中不知道是不是路径不对的问题怎么验证?

很简单,在你调用dll的函数之前加上这句话,看看你的dll是都在程序路径中

MessageBox.Show(AppDomain.CurrentDomain.BaseDirectory);

(2). dll中是否用到了别的dll了

如果是这个问题的话,你只能去找找你的dll看看是否用到了其他的dll了,关于怎么通过一个dll去看他是否依赖别的dll这一问题我目前也没有明确的办法。


3.知道dll中有些啥函数

我在加载dll的时候不知道dll中有哪些接口怎么办,或者使用别人封装的东西时报出类似于“无法在 DLL“XXX.dll”中找到名为“XXX函数”的入口点。”


在这里我是通过LordPE这个软件来看dll中都有些啥函数的。

这里讲一下怎么使用这软件看dll中的函数:

打开软件


点击“PE 编辑器”按钮,选择你要查看的dll


选择“目录”


点击红笔部分的“..”按钮


瞧,这不把所有函数都不显示出来了没


如果你的程序提示“无法在 DLL“XXX.dll”中找到名为“XXX函数”的入口点”这个错误,你可以考虑考虑看看你的dll有木有这个函数

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东老是弹广告怎么办 电脑右下角出现无法显示网页怎么办 电脑右下角广告关不了怎么办 qq邮箱被冻结了怎么办 手机qq群自动发广告怎么办 济宁学院考研和上课冲突怎么办 考研但是大四上课多怎么办 试管促排卵泡少怎么办 京东退货卖家拒收怎么办 京东退货被卖家拒收怎么办 期货平台跑路了怎么办 浮云牧场没房了怎么办 融资股票停牌了怎么办 买入的股票停牌怎么办 淘宝抢到便宜货老板不发货怎么办 微信代购买到假货了怎么办 微信代购收到假货怎么办 苹果商店下载很慢怎么办 谷歌商店下载东西慢怎么办 买家说少发货了怎么办 人肉代购被海关扣了怎么办 韩国代购被海关扣了怎么办 爱奇艺开通自动续费忘了账号怎么办 小米手机云储存空间不足怎么办 路由器被黑了打不开网页怎么办 致人轻伤跑了怎么办 轻伤对方要30万怎么办 老公用老婆的钱怎么办 想注册个公司要怎么办 域名续费不知道找谁怎么办 代收快递弄丢了怎么办 货到付款的快递人不在怎么办 快递送货上门人不在怎么办 ems快递签收人不在怎么办 快递被别人取了怎么办 怎么办快递宗和收发点 快递电话写错了怎么办 网上买沙发想退货怎么办 买的电脑想退货怎么办 买了衣服想退货怎么办 天猫买药审核通过后不要了怎么办