您的位置:首页 > 编程语言 > C语言/C++

C# importC++编译的dll提示“找不到指定的模块”

2017-11-17 11:45 1521 查看
前提:

1、VS2015 C#winForm客户端程序,使用了C++编译的dll(此处简称A.dll),调试没问题。

2、使用VS自带的打包程序进行打包,也将A.dll打包进去了。

结果:

拿到其他电脑上安装运行后,涉及到使用A.dll的功能,都提示“找不到指定的模块”。

解决:

1、检查A.dll是否打包进去—–>确认安装目录下有A.dll

2、检查A.dll关联的dll是否打包进去——->经确认有四个dll未打包进去。

如何确认缺少的dll:由于这四个dll是系统库文件,一般情况下不会注意到。(哎呀,多亏了自己灵光一闪,哈哈)

我是通过工具DLLShow和depends22_x86查看A.dll关联的dll,其实只用depends22_x86就可以了。效果图如下:(看到了吧,都是系统库文件啊,比较难找的T_T。)



将黄色部分找到,从网上下载或者去本机C盘找(因为本机没问题,说明本机肯定有这些文件),找到后用工具再查看一遍,如果还有黄色提示,那就继续找,找到没有黄色部分为止。

最后将所有找到的dll文件拷贝出来,一起打包就可以了。

3、注意:如果程序在64位操作系统运行就去“C:\Windows\SysWOW64”下找,如果在X86电脑运行就去“C:\Windows\System32”下找。

心路历程:

a)刚开始没觉得有少了的dll,因为我编译的,我用到的都打包进去了

b)网上搜了相关资料,也许A.dll的路径不对,也许import方式有问题,结果改成绝对路径也没有用。

c)纠结了一天啊,觉得还是少了关联的dll,幸好自己想到了DLL查看工具。

d)解决了,皆大欢喜啊。哈哈哈^O^

最后:

这是我第一次写博客,希望自己能坚持下去,记录一点一滴,告诉自己要有耐心,要有那灵机一动,功夫不负有心人滴!

2018-1-31更新:

后来发现,我是用VS2015开发的APP,将APP安装到其他电脑上出现上述问题是因为缺少运行时组件,方法很简单,请参考下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 引用c++ dll 打包 关联
相关文章推荐