"virtual" definiert ja nur Referenzen (eine Index-Nummer) auf die Funktionen der Klasse, über die
VMT.
Jedes Modul (EXE/
DLL) hat seine eigene
RTTI.
Nun läßt Delphi gerne Ungenutztes weg. (Optimierung)
Wenn man nun also eine Funktion in der
DLL/EXE nutzt, aber im Anderen nicht,
dann enthalten beide RTTIs unterschiedliche VMTs, welches sehr schöne Effekte ergibt, da so falsche Funktionen aufgerufen werden, wenn man über Modulgrenzen hinweg mit Objekten arbeitet.
Ich kann davon ein Lied singen.
Das war der Grund, warum es die DLL-Version meines himXML nicht mehr gibt, also die alte Version mit den Objekten. (die neue Interface-Version wird hoffentlich bald erscheinen)
Fazit, es ist nicht ratsam Objekte über Modulgrenzen hinweg zu nutzen,
außer bei Verwendung von Laufzeit-Packages.
PS: Hast du auch an den Shared-MemoryManager gedacht?