Zitat von
Henry:
Ich möchte nämlich komponenten an die
DLL übvergeben (z.B. StringGrid)
Das mag jetzt überraschend kommen, aber Objekte and die
DLL zu übergeben hat (fast) gar nichts mit dem Speichermanager zu tun.
Damit das geht müssen alle Packages, die für die Komponenten benötigt werden als Laufzeit-Packages von
DLL und Echse referenziert werden.
Das heißt, du musst mindestens die
RTL,
VCL mitliefern und als Laufzeit Packages angeben. (Unter "Packages" in den Projektoptionen)
Das ist die einzige Möglichkeit, damit TStringGrid in der
DLL das gleiche wie TStringGrid in der Echse ist.
Eine andere Möglichkeit wäre es, wenn du dein StringGrid in ein Interface mit den Methoden verpackst, die du benötigst.
Dann bräuchtest du in der
DLL nur das Interface benutzen, ohne den Rattenschwanz an Packages mit schleppen zu müssen. (Du kannst hier nach
DLL und Interfaces suchen)
Packages sind eigentlich ein sehr furchtbares Format für eine Bibliothek, da sie immer nur mit einer ganz speziellen Version des Compilers laufen. Du kannst mit Packages nicht die
DLL mit Delphi 7 und die Echse mit 7.1 kompilieren.