The specified module could not be found的解决办法

 

      今天给客户安装版本的时候,出现了"The specified module could not be found. (Exception from HRESULT: 0x8007007E)"的错误提示。这个错误的原因是存在无法调用的dll。排查了半天时间,发现这个错误是由第三方的类库报出来的,而且它并没有返回具体的哪一个dll无法找到,就只能慢慢查找原因。

    排查问题的时候,发现两个很好用的工具。一个是Dumpbin,它可以查看这个dll加载了哪些dll项。一个是depends.exe,它可以构建相关模块的分层树状图。

1. Dumpbin的介绍及使用

    Dumpbin是Visual Studio自带的工具, 查看方式为:开始->所有程序->Microsoft Visual Studio 2012->Visual Studio Tools ->“Visual Studio 命令提示(2012)”。

    Dumpbin查看相关dll的命令如下: Dumpbin -imports 完整路径。例如我想查看C:\Windows\System32\SensApi.dll的相关dll,那么直接输入Dumpbin -imports C:\Windows\System32\SensApi.dll就可以了。Dumpbin还有一些其他的功能,这里就不详述了。

2. depends的介绍及使用

     还有一个很好用的工具是:depends.exe。它可以构建相关模块的分层树状图。如果存在无法调用的dll,它可以将错误的dll信息显示出来,这样就很容易排查到具体的specified mode。depends.exe的官方地址为https://dependencywalker.com/。直接通过File -> Open,打开需要查看的模块就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值