Dependency Walker:缺少dll

时间:2016-03-26 19:58:43

标签: windows dll visual-studio-2013 dependencies dependency-walker

我一直在尝试使用 Dependency Walker 来解析可执行文件的.dll依赖项。目前,我正在以下列形式错过.dll:

API-MS-WIN -XXX

EXT-MS-WIN -XXX

例如:

API-MS-WIN-APPMODEL-IDENTITY-L1-2-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-INTERNAL-L1-1-0.DLL
API-MS-WIN-BASE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYSCOLORS-L1-1-0.DLL

有没有人对如何解决这些问题有任何想法? 任何帮助将不胜感激!

其他信息:我使用 Visual Studio 2013 编译了可执行文件。最有趣的是我在编译期间没有收到任何错误。但是,由于缺少依赖项,我无法运行它。我还附上了依赖步行者的截图:

dependency walker

更新1:为了解决这个问题,我尝试将VS编译时使用的库的路径添加到 $ PATH 环境变量中,没有任何运气( Dependency Walker 仍显示未解析的依赖项)。

4 个答案:

答案 0 :(得分:55)

这些是API集 - 自Windows 7以来逐渐引入essentially, an extra level of call indirection。依赖性walker开发在此之前很久就停止了,它无法正确处理API集。

所以这些都是假阴性,无需担心。你没有遗漏任何东西。

另见On API-MS-WIN-XXXXX.DLL, and Other Dependency Walker Glitches

编辑:仅在2017年10月才有人终于试图填补这一空白。见Dependencies by lucasg。到目前为止,我只是简单地摆弄它,但它能很好地处理API集,至少非常值得关注。

答案 1 :(得分:16)

除了@Ofek Shilon所说的,我通常会忽略以下dll,当我尝试为我的程序找到缺少的dll时,dependency_walker会将其识别为缺失。当dependency_walker说这些dll丢失时,你会发现你的程序运行正常。

  • API-MS-WIN - * .dll
  • EXT-MS-WIN - * .dll
  • IESHIMS.dll
  • EMCLIENT.dll
  • DEVICELOCKHELPERS.dll

您可以搜索上述以外的dll来解决您的问题。

答案 2 :(得分:2)

我也忽略了:

  • EFSCORE.DLL
  • WPAXHOLDER.DLL

答案 3 :(得分:0)

依赖项程序帮助我立即找到了丢失的DLL。它是开源的,可以在这里找到:https://github.com/lucasg/Dependencies