Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

AW: Wie Typeninfo zwischen DLL's austauschen?

  Alt 3. Aug 2017, 05:38
Aber leider muss DLL1 per RTTI sich einen Setter holen und der hat im Kontext von DLL1 einen anderen Typen im Kontext von DLL2...
Das ist schon etwas böse. Aber ich gehe bei dir einfach mal davon aus, dass du das nicht "aus Spaß" so machst.

Wir haben ähnliche Konstellationen wie du, aber dabei casten wir die Interfaces immer auf die korrekten Typen nach der Übergabe als IInterface, nutzen also nicht wie du die RTTI für die Member. (Der Pluginmanager hat dafür eine generische Schnittstelle in beide Richtungen.)

Mir fallen drei Möglichkeiten ein, falls du beide DLLs dafür ändern kannst:
1. Wäre es vielleicht möglich TInvokeableVariantType zu verwenden? Zum Beispiel indem DLL2 zusätzlich ein weiteres Interface implementiert, das einen passenden Variant enthält, so dass du das Interface per QueryInterface dafür holen kannst? (Das habe ich zwar noch nie über DLL Grenzen hinaus gemacht, aber ich vermute, dass das klappt.)
Das wäre bei der Verwendung in DLL1 dann supereinfach.
2. Vielleicht könnte DLL2 in der Klasse auch ein weiteres Interface implementieren, das die notwendigen RTTI-Infos exponiert.
3. Gibt es irgendeine Möglichkeit an den Schnittstellen etwas zu erweitern? Ich denke da an eine zusätzliche Möglichkeit Metainformationen zu den Interfaces abzufragen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat