Zitat von
chaosben:
So, jetzt habt ihr mich so weit ("auf die Palme") gebracht, das ich ne Demo geschrieben habe. Und ... wer hätte das gedacht ...
es geht (via Pointer).
Und wer es nicht glaubt, der sauge sich bitte den Anhang.
Natürlich funktioniert diese Vorgehensweise nur
ganz sauber, wenn man für die
DLL und das Programm den gleichen Compiler und die gleichen Units verwendet.
Das geht vieleicht, aber ist es sinnvoll bei einer "normalen"
DLL den Compiler und die Version der
DLL's vorzuschreiben. Dann kann man ja gleich Packages nehmen.
Auch gehen in diesem Fall nicht alle Objekte korrekt in 'ner
DLL verwenden.
Kannst Du mal dein Programm so erweitern das eine aus der
DLL erzeugtes TFont-Objekt in der Exe einem Button zugewiesen wird. Meine Versuche nach deinem Schema scheitern immer an einem Absturz.
Zitat von
chaosben:
Und noch ein Wort zu Objekten und Pointern. Eine Objektreferenz ist ungleich der Adresse im Speicher. Das was Integer(Objekt) liefert ist nur eine ID, die innerhalb der
VCL-Umgebung eines bestimmten Programms gültig ist. Somit kann ich nicht diese ID an eine
DLL übergeben, da diese ja in einer anderen Umgebung läuft. Dagegen ist die Adresse des Objektes im Speicher eindeutig.
OK. Habe ich auch nicht so im Details so gewußt. Aber lößt das auch unser Problem komplett (siehe TFont)?
Windows Vista - Eine neue Erfahrung in Fehlern.