Hallo zusammen!
ich habe mir dank Sakuras Plugin-Tutorial und ein paar Vorschlägen hier im Forum
für eine Interface-basierte Schnittstelle ein Plugin-Framework zusammengeschustert...
Zusätzlich hatte ich das Ziel, das anstatt DLLs jetzt BPLs geladen werden.
Es funktioniert in soweit, dass das Plugin mit der Anwendung kommuniziert,
in meinem Beispiel sendet das Plugin einen Text in eine Memo-Komp.
Beim Beenden des Programms wird leider eine Schutzverletzung von "EInvalidPointer"
erzeugt. Ich habe versucht, schrittweise mit dem Debugger durchzugehen,
bin aber nicht fündig geworden (und wie gesagt, ich verwende Sakuras Plugin-Klassen
als Basis)
Ich vermutete, dass der Fehler in der Handhabung der Interfaces liegt,
die ich vielleicht zu unrecht freigegeben habe (wird ja automatisch erledigt)
Doch so weit ich es richtig verstanden habe, ist dies ja nur der Fall,
wenn ich meine Instanz auch vom Interface und nicht von der Klasse ableite, richtig?
Ich habe das Projekt mal angehangen -- es ist nicht sehr groß und kann sofort
kompiliert werden (erzeugt mit Delphi 7 ohne Fremdkomponenten).
Vielleicht sieht ja ein erfahrenerer Programmierer schon auf den ersten Blick,
was hier nicht stimmt... würde mich freuen.
****
Edit: Ich habe eine neue Version hochgeladen, die nur die Packages
rtl und
vcl benötigt. Das Projekt muss ja mit diesen Laufzeitpackages
compiliert werden.
Ich glaube der Fehler liegt daran, das die PlugIns über das Interface
instantiert wurden, anstatt über eine Klasse... Werde weiter probieren...
****
Dank und Gruß
Pfoto