Problem mit GetProcAddress
-
Hallo zusammen, ich habe ein Problem damit, funktionen aus einer DLL zu laden. Weiss jemand von euch vielleicht, was ich falsch gemacht habe?
APP - Code
int __stdcall WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpCmd,int nShowCmd){ HINSTANCE hInstDLL = LoadLibrary("mydll.dll"); HOOKPROC fnc = (HOOKPROC)GetProcAddress(hInstDLL,"MsgProc"); return 0; }DLL - Code
__declspec(dllexport) long __stdcall MsgProc(int nCode,WPARAM wParam,LPARAM lParam){ MessageBox(0,"lkj","klj",MB_OK); return 0; } int __stdcall DllMain(HINSTANCE hInst,DWORD dwReason,void* pReserved){ return 1; }
-
Du hast keine .def Datei erstellt. Wenn du das nicht machst ist der Funktionsname nicht MsgProc sondern sieht etwas anders aus.
-
Ja das stimmt, wie mache ich den eine solche .def datei?
-
In der Datei muss stehen
EXPORTS
MsgProcund dann muss man die noch dem Compiler bekannt machen.
-
mach mal extern "C" vor die funktion oder guck in dependeny walker mit welchem namen die funktion exportiert wird