Hallo Leute, ich bin Delphi-Einsteiger und habe folgende Frage: wenn ich eine einfache Oberfläche mit einpaar Buttons unter Delphi 7 zusammenklicke, erzeugt mir der compiler eine exe von eineigen hundert KB (200KB...). Liegt das an der Effizienz des Compilers oder sind da auch Debug-Infos mit dabei. Ich kenne das von VS 6++ von Microsoft, da sind exe-Dateien mit debug-Infos auch riesengroß.
Du kannst mit Delphi auch so kleine Programme haben, wie in VC6. Die Größe kommt zustande, da alle benötigten Bibliotheken in die Exe eingebunden sind (Standardeinstellung). Bei VC werden die benötigten Bibliotheken nicht in die Exe eingebunden (Standardeinstellung). Bei M$-Porgrammen ist das auch recht vorteilhaft, da meist alle verwendeteten Bibliotheken (wie bspw. com32dlg.dll) schon auf (fast) jedem Rechner vorliegen. Diese werden nämlich auch vom Betriebssystem benötigt und sind deshalb im Systemverzeichnis zu finden. Bei Delphi-Programmen ist das anders. Die VCL-Biobiothek (heißt bei Borland Package) ist nicht auf jedem Rechner vorhanden und so geht Borland (standardmäßig) davon aus, diese gleich mit in die Exe einzubinden, damit die Exe dann auch auf jedem Rechner sofort lauffähig ist. Wenn Du nun kleinere Programme haben willst, weil bspw. auf dem Rechner mehrere Delphi-Programme laufen, kannst Du die Bibliotheken auch als extern einbinden. Entsprechende Einstellungen sind unter Projekt|Optionen|Packages zu machen. Dann solltest Du aber nicht vergessen, die benötigten BPL mitzuliefern. Joline
comdlg32.dll ist ein ungünstig gewähltes Beispiel - die ist ein Systembestandteil und wird nie statisch gelinkt. msvcrt*.dll (C runtime-Library) mfc*.dll (MFC library) - das sind DLLs, die auch statisch gelinkt werden könnten. Wobei mfc*.dll natürlich nur dann gelinkt wird, wenn MFC-Applikationen geschrieben werden; ein C-Programm benötigt diese DLL (resp. die alternative statische Library) niemals; ein C++-Programm auch nicht, so lange es keine MFC-Applikation ist. Eine Abhilfe bei zu großen Binaries ist übrigens die Verwendung eines EXE-Packers à la UPX.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.