Einzelnen Beitrag anzeigen

Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#3

Re: WieFunktion des Hauptprogrammes über Pointer aus DLLstar

  Alt 17. Sep 2006, 00:02
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
Christian Nöding
  Mit Zitat antworten Zitat