我用C#写了一个程序,隐式调用了三个dll,暂且叫A.dll/B.dll/C.dll吧。这三个dll都是自己写的,使用的C++。其中B.dll中也调用了C.dll。现在的问题是在C#生成的exe中使用A.dll和C.dll都可以,但使用B.dll时却出现了下图的报错。
1. 网上有说是路径问题,我是把C#和三个dll的项目放在一个解决方案里的,生成路径都设置到了解决方案目录里的Debug目录,所以在引用时都直接写的dll名称,路径应该没问题,因为A.dll和C.dll都可以调用。
2. 网上也有说是我调用的dll引用了其他的dll,我用depends这个工具打开exe看了一下,如下图。首先,他没有依赖我自己写的这三个dll,这个很奇怪,然后提示我没有那8个红色的dll。我把这8个dll从网上下载了都放进exe所在的Debug文件夹下,再运行exe还是不行啊。
我看了很多网上这方面的资料,现在还是解决不了,请教大家这究竟应该怎么解决?
无法加载 DLL“xxx.dll”: 找不到指定的模块。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- sundonga 2015-02-04 02:06关注
找到原因了,不是常见的路径和依赖的问题,我仔细的看了一下我的B.dll的程序,发现我定义了一个结构体的指针,还没有给这个指针分配内存的时候就用这个指针来引用结构体内的成员了。奇怪的是编译器竟然没报错,而运行中出错竟然提示的是找不到dll。吸取教训,看来dll本身出错了,也会提示这个找不到dll。也多谢各位前辈的指导,csdn真是个不错的地方。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题