Danke für die Denkarbeit, aber in diese Richtung geht es nicht (es gibt nur ein Interface, und jede
DLL gibt exakt dieses zurück). Ich muss zugeben, dass der Begriff PlugIn in der Problemstellung etwas irreführend war.
Das macht doch nichts, wenn jede
DLL nur
ein Interface zurückgibt.
Die
Dll liefert zunächst nur ein Interface vom Typ
IPlugin
zurück, welches aber auch das benötigte
INeededInterface
unterstützt:
Delphi-Quellcode:
TFoo = class( TInterfacedObject, IPlugin, INeededInterface )
end;
Die Anwendung selber nimmt sich dann alle Plugins, die das gewünschte Interface unterstützen.
Dadurch wird es wurscht, welche Interfaces eine
DLL zur Verfügung stellt, man hat genau einen Einsprungspunkt und darüber kann ich jede Funktionalität aus der
DLL herauslutschen. Auch die, die ich mir heute noch nicht vorstellen kann.
Und einen wirklichen Overhead habe ich dadurch auch nicht.