Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 

[Techno-Demo]Von Dll auf VCL-Objekte der Anwendung zugreifen

  Alt 23. Mär 2006, 13:51
Oft gibt es ja Diskussionen darüber, warum man von einer DLL nicht auf die Komponenten des aufrufenden Programms zugreifen kann. Das Ganze wurde hier auch schon erklärt.

Wir haben nun eine Art "Framework" geschrieben um Objekte aus der Hauptanwendung in die DLL (und umgedreht) zu exportieren. Innerhalb der DLL kann man fast alle windigen und nicht-windigen Sachen mit den importierten Objekten machen.
Aber es gibt auch die folgende Einschränkung: Wenn eine Eigenschaft/ein Objekt selbstständig Speicher allociert, kann es sein, das beim Beenden der Anwendung Zugrifssverletzungen entstehen. Die betrifft zum Beispiel die Font-Eigenschaft. Das bedeutet, das man diese Eigenschaften einfach ignorieren soll.
Wichtig ist auch, dass innerhalb der DLL allocierte Strings (auch durch einfache Zuweisung) am Ende (finalization) freigegeben/auf '' gesetzt werden. Aber seht euch einfach die Sourcen der Demo an und probiert ein wenig herum. (Und in der Demo einfach mal auf die Hints schauen. )

Liste der möglichen Fallstricke:
  • DLL und Programm müssen mit exakt den selben Sourcen und dem gleichen Compiler erstellt werden
  • to be continued ...
Angehängte Dateien
Dateityp: pas uobjectexport_142.pas (6,1 KB, 48x aufgerufen)
Dateityp: zip objectexport_demo_128.zip (508,6 KB, 61x aufgerufen)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat