Einzelnen Beitrag anzeigen

win568

Registriert seit: 8. Sep 2008
134 Beiträge
 
#1

Fehler beim dynamischen Laden von Packages

  Alt 4. Mär 2011, 08:58
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.
  Mit Zitat antworten Zitat