Objekte/Klassen dürften
NIEMALS über
DLL-Grenzen hinweg genutzt werden. (ohne Packages)
ohne ShareMem hat jeder seinen eigenen Speichermanager
* in einem Modul (EXE/
DLL) reservierter Speicher kann nicht in einem anderen Modul verändert werden
* * die Reservierung des Speichers ... der Inhalt ist was Anderes
* * z.B. die Länge eines Strings ändern, bzw. den String einer anderen Variable/Parameter zuweisen (wenn es passieren kann, dass ein String dabei freigegeben wird)
ohne Packages hat jedes Modul seine eigene Deklaration von Typen und ihrer Methoden, sowie eine komplett eigene TypeInfo/
RTTI
* selbst wenn man denkt es sei identisch, ist das NIEMALs sicher
* durch Optimierung kann der Kompiler/Linker optimieren und z.B. "ungenutzte" Felder in der Klasse "weglassen"
* ist das in beiden Modulen unterschiedlich, dann denkst das eine Modul an Adresse+5 wäre das Feld, aber das Andere Modul denkt dort wäre etwas Anderes
Bei Nutzung von Interfaces sieht das Anders aus.
* hier muß man zwar drauf achten, dass alle Seiten die
selbe gleiche Definition besitzen,
* aber intern wird jeder Methodenaufruf an das Modul weitergeleitet, wo das Interface/Object erstellt wurde (Create)