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 ...