Moin Philipp,
der Begriff, der Dir fehlte ist Callback Funktion.
Das Prinzip ist ganz einfach.
Du deklarierst Dir einen Typ, der die Funktion/Prozedur Deklaration enthält, z.B.
Delphi-Quellcode:
type
TMyCallback = procedure(const AiValue : integer);
Jetzt kannst Du den Typ in der
DLL verwenden
Delphi-Quellcode:
// DLL
procedure EnumRandom(
const AiCount : integer;
const ACallback : TMyCallback);
var
i : integer;
begin
randomize;
for i := 1
to AiCount
do begin
ACallback(Random(50));
end;
end;
Delphi-Quellcode:
// Anwendung
// Annahme: Die DLL Funktion wurde unter ihrem Namen importiert
// Die Funktion die Aufgerufen werden soll.
procedure EnumCallback(
const AiValue : integer);
begin
Form1.Memo1.Add(IntToStr(AiValue));
end;
// Es werden 10 Zufallszahlen von 0 bis 49 in ein Memo geschrieben
procedure TForm1.Button1Click(sender: TObject);
begin
EnumRandom(10,@EnumCallback);
end;
Ungetestest sollte aber so gehen.