未经处理的异常 System.IO.FileNotFoundException 未能加载文件和程序集 XXX.dll或它的某一个依赖项 找不到指定的模块

参考:带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑

在做VC++开发的时候,双击应用程序,报错:

未经处理的异常 System.IO.FileNotFoundException 未能加载文件和程序集 XXX.dll或它的某一个依赖项 找不到指定的模块


step1 首先确认依赖的DLL是否在exe的同级目录下或者system32目录下。

step2 如果step1确认后依然不能解决问题,请检查你依赖的DLL是否还依赖其他DLL。

Dependency Walker 请务必下载。


在能正常运行和不能正常运行的电脑上,用depends.exe需要分析的DLL。


如上图,表明你的电脑的应用程序对应的目录下缺少CH341DLL.DLL,前面标识?表明缺少对应的文件。

当你补充CH341DLL.DLL后,关闭depends.exe后,再次用depends.exe打开FactoryAuto.Device.CH341.dll分析后,就不缺少DLL了,你的应用程序也能正常打开了。



STEP3 特别重要

当你自己开发DLL的时候,当你释放给别人的DLL的时候,请释放Release版本的。也就是你的运行库选择:多线程DLL(/MD)。

如果选择:多线程调试DLL(/MDd)。我的开发环境是VS2010,如果选择:多线程DLL(/MD),你开发的DLL依赖:msvcr100.dll,如果选择:多线程调试DLL(/MDd),你开发的DLL依赖:msvcr100d.dll,而VS2010的运行时库2010_x86.exe运行时库安装后在system32下有msvcr100.dll,而vs2010安装后两个都有,msvcr100d.dll用于调试。

调试过程中选择:多线程DLL(/MD),释放的时候选择:多线程调试DLL(/MDd)

当然你也可以把msvcr100.dll和msvcr100d.dll拷贝到你的应用程序的目录下。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值