查看程序所依赖的dll

dependency.exe是微软出的一款查看可执行程序依赖项的工具,但是微软已经不再更新它,强行使用它会有一些坑。

微软系统将api做了重新分组包装,比如 CreateFileW,最开始就是实现在 kernel32.dll 这个 dll 中的,现在系统只是在内部绕了几个弯子,kernel32.dll 里的 CreateFileW 没有实现了,而是又转到了 api-ms-win-core-file-l1-1-0.dll,而 api-ms-win-core-file-l1-1-0.dll 中的 CreateFileW 最终又转向 kernelbase.dll 中,用户连接的dll不变但是其真正实现却进行了转移。不同系统中这些中间链接库api-ms-win-core-xxx.dll的名字可能不同但是对于用户来说,与我无关,我只要确保连接到kernel32.dll就可以了后面的事情都是系统的处理。但是dependency.exe的分析结果却可能出问题,尤其涉及到api-ms-win-core-xxx.dll这类dll,所以看到缺少这些系统api的dll直接忽略。因为只是“桥梁”的版本不同但是运行是没有问题的,而且系统级api很少会做修改,不必关心“桥梁”叫什么只要能到的目的地就ok。一般新环境缺少的是c++运行时相关的库,而不会是系统核心的dll。

另外附一个更新及时的dependency地址:https://github.com/lucasg/Dependencies/

你可能感兴趣的:(c++,动态链接库,调试)