我最近在运行编译完成的小程序出现“找不到指定模块” 问题, 我解决问题之后,觉得还是记录一下。
出现场景:在本地编译完成可以正常运行;发布之后在部分电脑上无法运行出现 “找不到指定模块” 这个错误。
首先使用VS自带的工具dumpbin,具体位置在VS安装目录的 VC\bin 文件夹下dumpbin.exe。(不知道路径的可以通过Everything文件查找小程序搜索dumpbin.exe)
命令行切换到该目录
输入dumpbin /dependents “dll路径文件名”
例如:我要查看DesktopDuplication.dll这个文件依赖哪些其他dll文件。
输入:dumpbin /dependents "DesktopDuplication.dll路径"即可
接下来通过Everything程序搜索依赖的dll路径,将所有依赖文件都放到项目的生成目录中(和引用dll同级目录)。
Everything工具下载
总结:
被调用的这个库(A),依赖的其他动态库(B)。
A库在载入时,没法找到B库。所以报错:找不到指定模块。