Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Minimale Exe-Datei- bzw. Compilatsgröße VCL-freier Delphiprogramme

  Alt 10. Mai 2012, 13:08
Um es noch mal etwas auszuführen, was himitsu schon gesagt hat. Module (Exe-Dateien, DLLs) werden unter Windows an die sogenannte Imagebaseaddress geladen. auf diese Adresse beziehen sich alle Adressen im Kompilat. Diese Imagebaseaddress wird beim Kompilieren festgelegt. Kann ein Modul nicht an die Imagebaseaddress geladen, weil sich dort schon ein Modul befindet, wird sie an eine andere Adresse geladen. Jetzt stimmen natürlich die Adressen im Programmcode nicht mehr und Windows muss sie neu berechnen. Dazu benötigt Windows den Reallocationtable. Da eine Exe in der Regel als erstes geladen wird, kann man ihn aus der Exe entfernen. Bei DLLs sollte man dies tunlichst nicht tun, da man nicht weiß, ob die Imagebaseaddress schon belegt ist oder nicht. Desweiteren ist der Reallocationtable nicht sehr groß, so dass es das Modul nicht signifikant verkleinert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat