DLL 无法加载:0x8007007E找不到模块。不确定导致此依赖项问题的原因

DLL won't load: Module not found 0x8007007E. Not sure whats causing this dependency issue

本文关键字:依赖 问题 不确定 加载 0x8007007E 模块 找不到 DLL      更新时间:2023-10-16

DLL(my.DLL)由Windows时间服务加载。它有一个关联的日志,该日志通过wevtutil im mymanfile.man.向windows事件日志记录服务注册

我用VS12库重建了项目,现在加载my.dll时出现问题。它根本没有被触及——没有日志记录,远程调试也不起作用,因为它没有被加载。

我已经使用依赖性walker对其进行了研究,并解决了大多数依赖性问题,除了一堆API_MS_WIN_*依赖性,我认为这些依赖性只是噪音,实际上并不是根本原因。

我需要更多的帮助来弄清楚是什么原因导致系统日志中出现"指定模块找不到0x8007007E"错误。Windows如何确定DLL不可加载?当我从vs10库更改为vs12库时,可能缺少什么?加载服务DLL(如w32time)的Windows过程是什么?

看起来可能缺少C++运行时DLL。

试试这个程序:http://www.dependencywalker.com

我发现了这个问题的答案:

w32time服务无法加载.dll。原因是加载顺序为:1)当前工作目录2)系统路径3)默认系统目录。

我的问题是当前的工作目录并不是DLL实际所在的位置。我需要将我的路径添加到path,以便系统找到它。

解决方案只需设置PATH=%PATH%/dir_where_dll_lives