Tja, es funktioniert doch noch nicht so super... das übergeben der Adresse mittels Pointer läuft prima und ich kann von der
DLL aus die Funktion im Hauptprogramm starten. Nur leider kann ich keine Daten von der
DLL mittels Parameter in die Procedure in der Hauptfunktion geben. Was mache ich falsch?
Im Hauptprogramm habe ich meine Funktion so definiert:
procedure CallbackGetDLLNames(nummer:integer; name:PChar);
ich übergebe der
DLL so die Adresse:
DLLFunktion(@TMainform.CallbackGetDLLNames);
und das ist sie dann:
Delphi-Quellcode:
procedure TMainform.CallbackGetDLLNames(nummer:integer; name:PChar);
begin
ShowMessage(inttostr(nummer));
end;
In der DLL sieht das ganze jetzt so aus:
Hier in der
DPR-Datei:
Delphi-Quellcode:
procedure DLLFunktion(CallbackGetDLLNames:Pointer);stdcall;
begin
@Form1.RefreshDLLNames:=CallbackGetDLLNames;
end;
und dann in der eigentlichen Form:
Delphi-Quellcode:
type TCallbackNames = procedure(nummer:integer;name:PChar);
// blablabla
CallbackNames:TCallbackNames;
// blablabla
CallbackNames(15,@beschreibung[15]); //beschreibung[] ist ein string-array
Habe ich irgendwas wichtiges missachtet? Offensichtlich werden die Parameter völlig falsch übertragen, da ich hier nicht die Werte auslese, die gesendet wurden. Vielen Dank für Hilfe jeglicher Art