Eine meiner Anwendungen kann eine System-Lib nicht auf dem einzigen Rechner laden. LoadLibraryEx gibt 0 zurück und GetLastError gibt 87 zurück (der Parameter ist falsch).LoadLibraryEx Fehler 87 (Der Parameter ist falsch)
Das kann solche Fehler verursachen und wie debugge ich es?
Fehler erscheint nur auf einer einzigen Maschine, die zu meinem Client (Server 2008R2) gehört. Libarary befindet sich im Ordner system32. Hier ist der Code:
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;
}
Ich kann nicht reproduzieren den Fehler auf meine Kopie von 2008R2 und haben keine Ahnung, was den Fehler verursachen kann. Meine App ist in VS2015 C++ geschrieben (reines WinApi, keine MFC oder Drittanbieter-Bibliotheken) und es ist 64-Bit.
Haben Sie gelesen, was msdn über die Verwendung von ** LOAD_LIBRARY_SEARCH_SYSTEM32 ** sagt? Scheint, dass du zuerst einen Patch installieren musst. Siehe [LoadLibraryEx] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179 (v = V.85) .aspx) doc. – Joel
Oh, ich glaubte, ich lese das Dokument, aber es scheint, dass ich es nicht getan habe. Wird es so schnell wie möglich mit dem Client testen. Vielen Dank. –
Warum verwenden Sie keinen absoluten Pfad? –