LoadLibraryEx错误87(参数不正确)

LoadLibraryEx error 87 (The parameter is incorrect)

本文关键字:不正确 参数 错误 LoadLibraryEx      更新时间:2023-10-16

我的一个应用程序无法在唯一的机器上加载系统库LoadLibraryEx返回0GetLastError返回87(参数不正确)。

这可能会导致这样的错误,我该如何调试它?

错误仅出现在属于我的客户端(服务器2008R2)的一台计算机上。Libarary位于system32文件夹中。这是代码:

HMODULE lib = LoadLibraryEx(L"authui.dll", NULL,
                            LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_SEARCH_SYSTEM32);
if (lib == NULL)
{
    DWORD err=GetLastError();
    Log(L"error id: ", err);
    throw;
}

我无法在我的2008R2副本上复制错误,也不知道是什么原因导致了错误。我的应用程序是用VS2015 C++编写的(纯WinApi,没有MFC或第三方库),它是64位的。

乔尔是对的。问题出现在KB2533623更新中,该更新未安装在有问题的计算机上。我已经按照David Heffernan的建议修改了我的代码,使用绝对路径,现在它工作得很好。

使用authui.dll的绝对路径作为LoadLibraryEx的第一个参数。