Одно из моих приложений не может загрузить системную библиотеку на единственном компьютере. LoadLibraryEx возвращает 0 и GetLastError возвращает 87 (параметр неправильный).Ошибка LoadLibraryEx 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-разрядная версия.
Вы прочитали, что говорит msdn об использовании ** LOAD_LIBRARY_SEARCH_SYSTEM32 **? Кажется, что вам нужно установить какой-то патч. См. [LoadLibraryEx] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179 (v = vs.85) .aspx) doc. – Joel
О, я думал, что прочитал документ, но, похоже, я этого не сделал. Будет проверять его с клиентом как можно скорее. Спасибо. –
Почему вы не используете абсолютный путь? –