RTTI hast du auch (TypInfo.pas)
Die "erweiterte"
RTTI wurde später hinzugefügt.
Aber nicht du sollst die
RTTI nutzen, sondern Klassen nutzen sie zur Speicherverwaltung.
DLL und EXE haben je ihre eigene
RTTI (wenn man nicht mit Laufzeitpackages kompiliert), was schnell schief gehen kann.
TObject der
DLL ist ein "Anderes", als das der EXE. Mit Runtime-Packages liegt die "gemeinsame"
RTTI der Klasse dann in den gemeinsam genutzten Packages (TObject liegt da in der RTLxxx.bpl)
Wenn in der EXE oder
DLL die Codeoptimierung z.B. unbenutzte Felder/Methoden entfernt, dann stimmen die Speichergrößen/-positionen nicht überein und es knallt schnell mal.
Darum geben keine Objekte mit DLLs sharen.
Und bei Strings oder dynamischen Array muß man auch erst einen Shared-Memory-Manager einbinden, da
DLL und EXE sonst jetzt ihren eigenen Speichermanager besitzen und es knallt, wenn der falsche Manager dann den fremden Speicher versucht zu verwalten.