![]() |
Mindestgröße eines Programms
Hi Leute,
ich kann nicht verstehen warum ein mit Delphi compiliertes Programm mit folgendem Inhalt
Delphi-Quellcode:
mehr kByte hat, als manche andere Programme die ich im Internet finde, die auch mit Delphi compiliert wurden.
program test;
begin end; Oben das Programm beinhaltet weder eine Unit noch Prozeduren, Funktionen, etc. Das oben genannte Programm bzw. die EXE hat 13,5 kByte. Ich hab aber auch schon Delphi EXE-Dateien gesehen die z.B. nur 7 kByte hatten und viel mehr Code enthielten. Woran liegt das? |
Re: Mindestgröße eines Programms
Das liegt an den eingebunden Libraries (bpls).
|
Re: Mindestgröße eines Programms
Außerdem ist die Unit System immer eigebunden. Und Programme lassen sich mit UPX z.B. leicht komprimieren.
|
Re: Mindestgröße eines Programms
@mkinzler: Wo werden diese Libraries eingebunden?
@3_of_8: Wo finde ich dieses UPX? Danke schonmal... |
Re: Mindestgröße eines Programms
|
Re: Mindestgröße eines Programms
Zitat:
![]() UPX ist folglich keine Lösung, die man unüberlegt verwenden sollte. Die direkt von Delphi erzeugte Anwendung bleibt auch gleich groß, da UPX nichts mit Delphi selbst zu tun hat, sonden nachträglich auf die Exe angewendet wird, folglich ist UPX keine Lösung auf deine eigentliche Frage. ;) |
Re: Mindestgröße eines Programms
Zitat:
|
Re: Mindestgröße eines Programms
NicoDE hatte da mal was.... Ist aber mehr Theorie...
![]() |
Re: Mindestgröße eines Programms
Wie schafft NicoDE es, die EXE auf 4,5 Byte zu kriegen?
Unter Projekt-->Optionen finde ich nichts zu Libraries... |
Re: Mindestgröße eines Programms
Zitat:
|
Re: Mindestgröße eines Programms
ja sorry kByte, is schon spät... :wink:
|
Re: Mindestgröße eines Programms
Ich werde leider nicht schlau, was diese .cmd genau macht...
|
Re: Mindestgröße eines Programms
Das:
Code:
Aber das ist nebensächlich. Hauptsächlich liegt es daran, dass er selbstgeschriebene System.pas und SysInit.pas Units benutzt hat, die wirklich nur das Nötigste enthalten.
@ECHO OFF
IF (%OS%) == (Windows_NT) SETLOCAL SET PATH=\borland\delphi9\bin;%PATH% FOR %%i IN (Hello?.exe) DO DEL %%i FOR %%i IN (*.dcu) DO DEL %%i REM -- ANSI -- dcc32.exe -Q System -M -y -Z -$D- dcc32.exe -Q SysInit -M -y -Z -$D- ECHO. dcc32.exe Hello.dpr ECHO. FOR %%i IN (*.dcu) DO DEL %%i bin\ResHacker -delete Hello.exe,Hello.exe,RCDATA,DVCLAL, > NUL bin\ResHacker -delete Hello.exe,Hello.exe,RCDATA,PACKAGEINFO, > NUL bin\StripReloc /B /C Hello.exe > NUL MOVE Hello.exe HelloA.exe HelloA.exe ECHO ExitCode: %ERRORLEVEL% ECHO. REM -- UNICODE -- dcc32.exe -Q System -M -y -Z -$D- -DUNICODE dcc32.exe -Q SysInit -M -y -Z -$D- -DUNICODE ECHO. dcc32.exe Hello.dpr -DUNICODE ECHO. FOR %%i IN (*.dcu) DO DEL %%i bin\ResHacker -delete Hello.exe,Hello.exe,RCDATA,DVCLAL, > NUL bin\ResHacker -delete Hello.exe,Hello.exe,RCDATA,PACKAGEINFO, > NUL bin\StripReloc /B /C Hello.exe > NUL MOVE Hello.exe HelloW.exe HelloW.exe ECHO ExitCode: %ERRORLEVEL% ECHO. IF (%OS%) == (Windows_NT) ENDLOCAL PAUSE |
Re: Mindestgröße eines Programms
Nee, so nebensächlich ist es wohl nicht. Drück ich bei D2005 einfach auf F9, dann ist die Exe trotzdem 15 kb groß. Starte ich die *.cmd, sind beide 5 kb groß...
|
Re: Mindestgröße eines Programms
Ok, soweit verstehe ich es!
Jetzt müsste ich nur noch wissen wo die System.pas und SysInit.pas eingebunden werden wenn ich dies nicht in meinem Programm mache? Unter Projekt-->Optionen finde ich nichts. |
Re: Mindestgröße eines Programms
du musst die Dateien im Lib-Verzeichniss (auch die DCUs) durch die neuen Ersetzen.
//edit: vllt solltest du die Originaldateien nicht wirklich löschen sondern nur verschieben ;) |
Re: Mindestgröße eines Programms
Zitat:
|
Re: Mindestgröße eines Programms
Hmm...
Ja, stimmt, macht irgendwie Sinn... |
Re: Mindestgröße eines Programms
Die beiden Units werden immer eingebunden, auch wenn sie nicht explizit gelistet sind.
|
Re: Mindestgröße eines Programms
Gut, dann danke erstmal...
Ich werde es probieren und mich bei Problemen nochmal melden! |
Re: Mindestgröße eines Programms
Zitat:
|
Re: Mindestgröße eines Programms
Zitat:
...:cat:... |
Re: Mindestgröße eines Programms
ok, überredet ;) ... es ist schon spät :nerd:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz