Windows查找依赖库

在缺少运行时库时,运行程序会报错


Windows查找依赖库_第1张图片

在windows平台下,有两种方式来排查依赖库

用VS的dumpbin命令

在cmd中输入如下命令:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\dumpbin.exe" /dependents "C:\Program Files (x86)\Nova Star\VPlayer\Bin\VPlayer.exe"
但该命令输出的依赖库不全,似乎只给出了exe依赖的一级动态库,无法打印出嵌套依赖的dll(也有可能我对该命令理解不全)

Dependency Walker

1 下载Dependency Walker
2 将dll或exe拖到Dependency Walker,就能看到所依赖的dll。
3 视图解析(从图中的窗口1和2都能看到依赖的dll)

Windows查找依赖库_第2张图片

默认只显示dll名称,可以通过选择“Full Paths”显示全路径


Windows查找依赖库_第3张图片

从图中“1”能看到不同dll之间的依赖关系
从图中“2”能看到dll的显示信息,如:32位的还是64位的
如果拷贝进的dll架构不对(如:32位的程序拷贝了64位的程序),在运行时,会报错


Windows查找依赖库_第4张图片

报“无法定位程序输入点”的错
Windows查找依赖库_第5张图片

需要分两种情况:

库的版本:不对拷贝另一的版本的库
缺少另一动态库,如:上图中就是缺少ucrtbase.dll,把该库也拷贝过来就解决了

你可能感兴趣的:(Windows查找依赖库)