Das Nichtfunktionieren des is - Operators aufgrund unschiedlicher
RTTI-Objekte lässt sich auch schön im Debugger verfolgen. Das darufhin erzielte Ergebnis ist auch eindrucksvoll: "TFont ist nicht vom Typ TFont".
Deshalb nutzten wir die Runtime-Packages, geraten aber nun mit unseren
DLL's vom Regen in die Traufe: Eine von ihnen lässt sich schön laden und entladen, bei der zweiten knallts am Programmende. In Kürze das was ich über das Problem weiss:
- Es reicht, eine zweite
DLL zu laden und sofort zu entladen: Knall!!
- vollkommen entleerte
DLL laden und entladen: dito
- wo knallt es: verantwortlich ist der Handlungsstrang nach ExitProcess (_Halt0 in system.pas). FinalizeUnits läuft also noch ohne Probleme durch
- verantwortlich scheinen die
OLE-
DB-Treiber zu sein. Je nach verwendeter
DB (Firebird oder Oracle) werden unterschiedliche Fehler kredenzt.
- im Speicher bleiben Objekte vom Typ AdoDB.asyncEventMessenger stehen; gilt für beide
DB's
Verzichte ich auf Runtime-Packages, bleiben die Fehler aus.
Alternativ: Vielleicht weiss jemand, wie sich
RTTI-Barrieren tunneln lassen??