Zitat:
Wenn ich eine Anwendung habe, die eine
DLL benutzt dann kann ich innerhalb der
DLL den Code anpassen und erweitern. Neue Funktionen kann ich dabei auch hinzufügen. Allerdings kennt meine alte Anwendung die neuen Funktionen ja nicht. Wie auch, als sie entstand existierten diese ja nicht. Deshalb die Frage: Wie soll das in VB gehen? Etwas was ich nicht kenne kann ich nicht aufrufen. Deshalb ist es ok, wenn ich die beiden Units in der Anwendung kenne. Oder nicht?
Du kannst keine
Unit's addieren die deiner anwendung nicht bekannt sind.
Baby.dll hat Emil geschrieben die Anwendung von Omata kennt diese aber nicht ..
Wie willst du sie dann addieren ?
Beide kennen wir nur das Interface IPersonU
Nein kannst du nicht!
Ein Plugin ist nur soweit erweiterbar wie die Class IPersonU das zuläßt
Alles darüber hinaus würde fehlschlagen da es in deiner Anwendung nicht verarbeitet wird.
Anwendung und
DLL's sind abhängig vom Interface IPersonU
Willst du also neue Dinge hinzufügen geht das nur wenn diese von IPersonU
nach außen freigegeben werden und die neuen Funktionen bzw.. die geänderte
Unit im jeweiligen Quelltext übernommen wird
also in jeder
DLL und der anwendung aktualisiert wird.
Jedes Programm kann dann die IPersonU einbinden und mit deiner Anwendung kommunizieren. bzw.. die Plugins verwenden.
Zitat:
Also das sehe ich jetzt nicht so bestätigt. Wo habe ich den wesentlich mehr Code geschrieben?
Na ja wollen wir nicht so kleinlich sein.
Meine komplette Anwendung kompiliert verwendet gepackt 22.5KB incl.. Source
Deine 1,2MB gut du hast die Runtime drin .. ohne Source
Auch habe ich keinerlei zusätzliche klassen einbinden müssen.
EDIT:
Auch das einbinden der IPersonU ist eigentlich nicht OK!
Diese ist nämlich ebenfalls eine eigenständige Datei(
DLL) also ein Wrapper zwischen deiner Anwendung
und den
Dll's welche sie verwenden du darfst also nur das interface von IPersonU einbinden nicht
die komplette
Unit.
Interface schreibt PersonX
Ich die
DLL und du die Anwendung.
Wird das interface geändert bekommt dieses eine neue
GUID und du mußt
deine Anwenung daraufhin anpassen so wie ich meine
DLL
Zitat:
Allerdings kennt meine alte Anwendung die neuen Funktionen ja nicht.
Nun kennt deine alte Anwendung die Funktionen auch.
gruss Emil