DLL不会加载:找不到模块0x8007007E。不知道什么导致了这种依赖性问题

时间:2015-02-12 23:51:50

标签: c++

Windows时间服务加载DLL( my.dll )。它有一个关联的日志,它使用 wevtutil im mymanfile.man 在Windows事件日志记录服务中注册。

我使用VS12库重建了该项目,现在我遇到了 my.dll 加载的问题。它根本没有触及 - 没有记录,远程调试不起作用,因为它没有被加载。

我已经使用依赖walker查看了它并解决了大多数依赖问题,除了一堆API_MS_WIN_ *依赖项,我认为这只是噪音,而不是实际的根本原因。

我还需要一些帮助来找出可能导致"无法找到指定模块的问题0x8007007E"系统日志中的错误。 Windows如何确定DLL无法加载?当我从vs10更改为vs12库时可能会丢失什么?什么是为服务加载DLL的Windows过程(例如w32time)?

2 个答案:

答案 0 :(得分:1)

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

尝试使用此程序:http://www.dependencywalker.com

答案 1 :(得分:0)

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

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

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

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