Thema: Delphi Arbeit mit Interfaces

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Arbeit mit Interfaces

  Alt 25. Jun 2018, 20:11
Ja, das geht so. Wir sind dabei aber einen Schritt weiter gegangen und haben Wrapper gebaut. So gibt es in der DLL und in der Anwendung jeweils eine Klasse, die Interfaces mit beliebigen Parametern gegenseitig, aber auch innerhalb der DLL oder Anwendung abrufen kann.

Dafür gibt es eine Registrierungsroutine in der DLL, die in einer separaten Unit steht. Es reicht daher diese Unit in die DLL einzubinden. Dann findet die Hostanwendung diese exportierte Funktion und übergibt an diese das Host-Interface. Darüber wird dann auch ein Client-Interface der DLL übergeben.

Und nun kann man darüber generisch nach einem bestimmten Interface-Typ fragen und Parameter mitgeben. Die Plugin-Klasse holt sich aus dem generischen Typ die GUID und fragt mit dieser GUID über das Interface die Hostanwendung nach einer passenden Instanz usw.

Beispiel:
Delphi-Quellcode:
IntParam := TParam<Integer>.Create(42);
IntfRef := TApp.Get<ITestPlugin>(IntParam);
Sebastian Jänicke
AppCentral

Geändert von jaenicke (25. Jun 2018 um 20:14 Uhr)
  Mit Zitat antworten Zitat