【问题标题】:Missing dependencies of kernel32.dll缺少 kernel32.dll 的依赖项
【发布时间】:2017-03-22 13:50:05
【问题描述】:

我有一个 Matlab DLL,我一直试图从 Delphi 代码中调用它。为此,我使用Loadlibrary(),它返回错误 126 'module not found'。

感谢 Dependency Walker,我发现问题可能来自 kernel32.dll。它的许多依赖于 Windows API(据我所知)丢失或找不到,如下面的屏幕截图所示:

如何获取这些缺失的 DLL?我应该重新安装与 Windows 相关的东西吗?

【问题讨论】:

  • 不,这不是缺少依赖项 - API-MS-WIN-* 当然存在。这简直就是 Dependency Walker 搞错了

标签: c windows matlab delphi dll


【解决方案1】:

那些是误报。该输出是完全正常的。您有时会遇到这种情况,尤其是当您混合使用 32 位 DLL 和 64 位 Dependency Walker 时,反之亦然。

如果您想确定问题所在,请使用 Dependency Walker 中的分析选项。它可以监视 DLL 加载过程并为您提供失败的报告。

根据您的描述,可能的解释是您未能解决对 Matlab 运行时或 MSVC 运行时的依赖关系。

【讨论】:

  • MSVC 运行时 dll 最有可能,我建议使用带有加载图像过滤器的进程监视器来查看它正在寻找什么 dll。 technet.microsoft.com/en-us/sysinternals/processmonitor.aspx
  • 你可以这样做。 Dependency Walker 将以更集中的方式为您提供相同的信息。
  • 我不知道 Dependancy Walker 可以超越静态链接的 DLL,但我想我学到了一些新东西。干杯...
  • 是的,配置文件模式非常有用且有效。
猜你喜欢
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
  • 2013-06-15
  • 2017-12-25
  • 2015-04-18
  • 2020-03-24
  • 2012-07-12
相关资源
最近更新 更多