Probleme mit LoadLibrary
-
Hallo,
folgender Code liefert mir für meine Variable dllInstance immer NULL zurück. Hat jemand eine Ahnung, woran das liegen könnte?
void __fastcall DLL_SysInfo(void) { HINSTANCE dllInstance; try { if (FileExists("syscrtl.dll")) dllInstance = LoadLibrary("syscrtl.dll"); try { if (!dllInstance) Application->MessageBox("SYSCRTL.DLL konnte nicht geladen werden.", "Fehler", MB_OK); else { ShowSysInfo = (int (__stdcall*)()) GetProcAddress(dllInstance, "ShowSysInfo"); if (ShowSysInfo == NULL) Application->MessageBox("Fehler beim Zugriff auf DLL", "Fehler", MB_OK); else { ShowSysInfo(); } } } catch (Exception &exception) { Application->ShowException(&exception); } } __finally { FreeLibrary(dllInstance); } }
freedy
-
mit der folgenden funktion kannst du rausfinden warum
// Fehlerbehandlung auf der Systemebene (z.B. LoadLidrary, GetProcAddress,... void __fastcall ErrorHandling(HWND hwnd, String Caption) { DWORD lErr = GetLastError(); if (lErr != 0) { LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, lErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); MessageBox(hwnd, (LPCTSTR)lpMsgBuf, Caption.c_str(), MB_OK |MB_ICONERROR ); LocalFree(lpMsgBuf); } SetLastError(0); } //--------------------------------------------------------------------------- ... // deine funk dllInstance = LoadLibrary("syscrtl.dll"); if (!dllInstance) ErrorHandling(NULL, "DLL Fehler"); ...
-
Danke, funzt.