[Gelöst] Funktionsaufruf aus DLL schlägt fehl
-
Hallo,
folgender Code meiner DLL:
//--------------------------------------------------------------------------- #include <vcl.h> #include <windows.h> #pragma hdrstop // C++Builder-Kommentare #pragma argsused int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { return 1; } //--------------------------------------------------------------------------- __declspec(dllexport) void func() { ShowMessage("hallo"); }und meiner Host-Anwendung
//FAQ-Quelltext typedef void (* DLLFUNCTION1PROC)(void); void __fastcall TForm1::Button1Click(TObject *Sender) { HMODULE hMyLib; DLLFUNCTION1PROC pfnDllFunction1 = NULL; hMyLib = LoadLibrary("..\\dll\\Project1.dll"); if (hMyLib == NULL) { ShowMessage("nicht gefunden"); return; } pfnDllFunction1 = (DLLFUNCTION1PROC)GetProcAddress(hMyLib, "_func"); if (pfnDllFunction1 == NULL) { ShowMessage("funktion fehlt"); return; } pfnDllFunction1(); FreeLibrary(hMyLib); }Warum kann GetProcAddress _func nicht finden (Meldung "funktion fehlt" kommt)?
Danke schon mal im voraus!
[EDIT] Gesucht habe ich schon vergeblich! Ich bin auch für Stichwörter dankbar. BTW: Wie heißt dieses Tool, mit dem man sich alle exportierten Funktionen einer DLL auflisten lassen kann?
-
Sorry, dass ich mal wieder vorschnell war. Hab das Problem selbst gefunden. Mit dem Dependency Walker von MS (über Wikipedia gefunden), habe ich herausgefunden, dass die Funktion @func$qv heißt. Setze ich ein extern "C" vor __declspec(dllexport), ist func als _func verfügbar.