Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: Welche Daten zwischen Plugin Anwendung?

  Alt 21. Jul 2006, 11:50
Zitat von Flippo:
also wie ich die Daten unaufgefordert hin und her sende: Das mache ich üüber WM_Copydata
Für DLLs, die im selben Adressraum sind, ist das ein wenig übertrieben. Warum SharedMemory erzeugen, die Daten hineinkopieren, die Message abschicken und empfangen, die Daten aus dem SharedMemory wieder einlesen und den SharedMemory freigeben.
Da tut es ein einfaches SendMessage(AnderesFensterHandle, WM_MYUSERDEFINEDMESSAGE, 0, Longint(PChar(S)); auch. Und da wird nichts unnötig kopiert.


Zitat von Der_Unwissende:
Ein sehr einfaches Beispiel für solche Systeme wäre wohl schon die IDE vor der du sitzt.
Und diese IDE nutzt BPLs, womit ihr alle wege offenstehen: Keine Probleme mit der Speicherverwaltung, man hat nur ein Application Objekt, man kann auf alle Units der anderen Packages (sofern eine .dcp Datei vorhanden ist) zugreifen und das in alle Richtungen. Nur auf die EXE-Selbst kann man nicht zugreifen. Die kommuniziert aber auch nur mit den Plugins über Service-Interfaces und Notifier (=Observer).
Und das beste für eigene Programme ist, dass der Compiler einem die ganzen exports und "function bla; external blo" abnimmt. Auch Klassen können über Packages hinweg instanziert werden. All das lässt sich mit einem eigenen Plugin-System nicht so ohne weiteres erreichen. Der einzige Nachteil ist, dass andere Programmiersprachen erstmal außen vor sind, bzw. halt nicht den vollen Funktionsumfang nutzen können. Aber auch unterschiedliche Delphi Versionen haben bei BPLs Probleme, weil sie einfach eine andere VCL und RTL Version als BPL benötigen.
  Mit Zitat antworten Zitat