【GetLastError】126

概述:LoadLibrary加载失败,返回126,解决方法。

[toc]

问题描述:

服务加载的 DLL 依赖第三方 DLL。

在某一个windows环境中,安装了一个服务 d,服务 d 的启动依赖于一个关键的 dll 文件(假设为info.dll),info.dll 所依赖的 dll 也存在,但是在服务启动的时候,使用 LoadLibrary 函数会返回GetLastError 126。

排查手段记录

使用 Dependencies GUI 查看 DLL 的依赖也是都满足的。问题还是出在服务进程加载的 DLL 如何加载另外一个 DLL。

已经尝试过的排查手段包括但不限于:

windbg 挂载,修改 showsnaps 查看 dll 加载记录。

可能和 DLL 有关系,作为 DLL 不能直接加载 DLL。

使用绝对路径加载dll

1
2
3
4
// old
LoadLibrary("info.dll");
// new
LoadLibrary("C:\\info.dll");

问题关键


【GetLastError】126
https://hodlyounger.github.io/A_OS/Windows/异常及错误处理/GetLastError/【GetLastError】126/
作者
mingming
发布于
2023年10月27日
许可协议