我的一个应用程序无法在唯一的计算机上加载系统lib。 LoadLibraryEx返回0 , GetLastError返回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位。
答案 0 :(得分:0)
Joel是对的。问题出在KB2533623更新中,问题机器上没有安装。我已将我的代码更改为使用绝对路径为David Heffernan推荐,现在它可以正常工作。