Hab grad keinen Windows Rechner zur Hand, Code ist also untested. Aber im Grunde läuft sowas in etwa so ab:
Delphi-Quellcode:
procedure DoubleClickHandler();
var
DllName :
string;
DllHandle : THandle;
DllFunction :
function (Parameter1, Parameter2 : Cardinal) : Boolean;
stdcall;
begin
DllName := '
test.dll';
// An dieser Stelle musst halt den DLL Namen aus Deinem Listview Popeln
DllHandle := LoadLibrary(DllName);
// Wir laden die DLL -> DllHandle enthält jetzt das Handle zur DLL
DllFunction := GetProcAddress(DllHandle, '
ExportierteFunction');
// Wir holen uns die Adresse der Funktion ExportierteFunction in der DLL und weisen sie unserem Funktionspointer DllFunction zu
DllFunction(0, 0);
FreeLibrary(DllHandle);
// Wir entladen die DLL nun, weil wir sie nicht länger brauchen
end;
Prinzipiell definierst Du Dir einen Funktionspointer als Variable. Dieser Funktionspointer muss die selbe Signatur haben wie die Funktion die Du aufrufen willst. Achte auch auf die korrekte Calling Convention (stdcall, cdecl oder was auch immer). Dann lädst Du die entsprechende
DLL mit
LoadLibrary.
LoadLibrary gibt Dir ein
Handle auf die
DLL zurück. Dieses
Handle benutzt Du dann um mit
GetProcAddress die Adresse der von Dir gewünschten Funktion zu ermitteln. Die Adresse kannst Du dabei dem von Dir definierten Funktionspointer zuweisen. Danach rufen wir den Funktionspointer auf. Dabei wird dann der Code an der Position die
GetProcAddress zurück geliefert wurde mit den entsprechend definierten Parametern aufgerufen. Zu guter letzt solltest Du die
DLL dann nachdem Du sie nicht mehr brauchst mit
FreeLibrary entladen.