Ist jetzt vielleicht ein bissl extrem, das Beispiel, aber so auf die Schnelle dahingetippt:
- alle Units, bis auf Eine in der Implementation eingebunden
- nur bei einer
Unit (UnitG) kann ich dir genau sagen wann diese geladen/freigegeben wird.
> ganz am Anfang und ganz zum Schluß (da Diese immer im Interface eingebunden wurde)
Die Einbindung in der
DPR entspricht der Einbindung im Interface einer
Unit.
Du kannst aber auch gerne die Units aus der
DPR rausnehmen und in eine weitere
Unit verlegen (alles in die Implementation oder alles ins Interface).
Da es mir hier nur um die Reihenfolge der eingebundenen Units ging und wie diese initialisiert werden ... ist es grundsätzlich erstmal egal, ob diese in er
DPR oder in einer weiteren
Unit eingebunden wurden.
Gegeben ist also
Delphi-Quellcode:
uses UnitG, Unit1, Unit2, Unit3;
begin
UnitG.DoLog('Main');
end.
// der Rest steht in der Demo
und nun versuch mir zu sagen in welcher Reihenfolge diese Units geladen werden.
Das kann dir keiner zu 100% beantworten, außervielleicht die, welche den Compiler/Linker erstellt haben, falls sie das überhaupt wissen.
(abgesehn derer, welche es ausprobieren, versuchen eine Regelmäßigkeit zu erkennen und dann hoffen ihr so erlangtes Teilwissen würde immer und in allen Situationen stimmen)