C#加载C++生成的dll报异常无法加载,找不到制定模块

一、故障分析:

C#编译正常,运行过程中报错,现象如下:

针对异常情况,做故障分析:

1.C++编译的dll正常,C#编译正常;

2.对加载的dll路径,做了反复检查,确认路径无问题;

通过c#代码 ,测试加载dll时的当前路径:

string s = "sfdsa";
System.IO.File.AppendAllText("../../aaa.txt", s);

根据生成的文件,确认当前路径;排除dll放置的路径问题。

经查资料,加载的c++生成的dll,如果其依赖其他dll,而所依赖的dll不在当前运行环境,也会保此种异常。

二、故障解决:

查询c++生成的dll,依赖其他什么dll:

查询方法一:利用vs子自带工具:VS 2017的 x64_x86 交叉工具命令提示符

打开进入cmd模式,找到C++的dll路径,通过命令:

dumpbin /dependents 需要检测的.dll

可以查询到,其依赖的所有dll,逐个拷贝出来。

查询方法二:利用专门的查询软件dependency Walker

导入需要查询的dll即可,该软件查询到dll依赖的其他dll,会提供所在路径,逐个拷贝出来。

把依赖的其他dll,放置在C#生成运行程序的搜寻路径中(比如和C#生成的exe同一目录,或其指定的搜索路径中);

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值