Hi Leute
Wir versuchen gerade unsere Anwendung in Packages zu unterteilen
.
Wenn wir nun das
Package dynamisch laden, haben wir folgende Problem: Im InitUnits (beim Durchgehen der Initialization Codes der Units) werden einige Units geladen und dann kommt es zu einer Schutzverletzung.
Ich habe nun durchgesteppt und hatte folgendes Phänomen: Sofort, wenn man in InitUnits in die Codezeile TProc(P)() reinsteppt, kommt man direkt in den Exceptionteil. Es wird nicht initialization aufgerufen, sondern einfach eine Schutzverletzung. Mit ein bißchen rumspielen mit der Reihenfolge der Units in der dpk Datei bin ich dann über einige Codestellen drübergekommen, da aber ~ 2000 Dateien drinnen sind, habe ich nach ~ 600 geladenen Units und ständigen Schutzverletzungen aufgegeben. Hat einer einen Tip ?
Wenn man in der Exe nach Initialization sucht, sieht man die Reihenfolge wie die Units geladen werden. Diese wiederrum ist unterschiedlich zu der Deklaration in der dpk. Wie zum Teufel baut der Compiler die Reihenfolge zusammen
.
Ich bin noch draufgekommen, dass Units, die globale Funktionen beinhalten, auf jeden Fall vorher geladen werden müssen. Nur kann man manchmal die Reihenfolge nicht bestimmen. Und was ist mit Zirkulärreferenzen. Diese kann der Compiler bei der normalen Exe auflösen, beim Laden des Packages scheint er ein Problem zu haben.