AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Größe von Kommandozeilen Programm (EXE) reduzieren...
Thema durchsuchen
Ansicht
Themen-Optionen

Größe von Kommandozeilen Programm (EXE) reduzieren...

Ein Thema von Ares · begonnen am 8. Feb 2007 · letzter Beitrag vom 9. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 16:02
Hallo!

Ich habe ein kleines Kommandozeilenprogramm geschrieben. Das Programm macht nicht viel außer ein paar werte zu addieren und ggf. eine Meldung anzuzeigen. Trotzdem ist die EXE stolze 407 KB groß. Für nicht mal 70 Zeilen Code ist das ne Menge. Es werden keine Units eingebunden, die nicht gebraucht werden, wie kommt also die Größe zustande?

Gibt es ein paar "Tricks" mit denen man die Größe reduzieren kann? Ich meine mit Delphi und nicht mit einem EXE-Kompressor wie z.B. UPX.

Besten Dank
Ares
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 16:05
Die einzige Möglichkeit wäre es in NonVCL zu programmieren, hierzu gibt es ein sehr gutes Tutorial von Luckie.
Bist du sicher, dass du alle Units brauchst ?

Sieht mir sehr dnach aus, als wäre die Unit Forms eingebunden, auf die man bei einem Consolen-Programm ja in der Regel vertichten kann.

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#3

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 16:27
Irgendwie ist die Frage im falschen Forum gelandet. Vielleicht kann Sie jemand verschieben...?

Ok, zur Frage:

Ich verwende folgende Units:

SysUtils,
ShellAPI,
Dialogs,
IdGlobal,
Windows;

Und nur diese.

Ich werde mir das NonVCL Tutorial mal ansehen.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.610 Beiträge
 
#4

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 16:32
SysUtils ist schon recht groß, und wenn ich mich nict täusche bindet Dialogs (wozu brauchst Du die bei einem Kommandozeilentool?) die Unit Windows ein, wo auch alle Forms sind. Die ist auch relativ groß.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 16:33
Hallo,

Dialogs muss raus,
für Anzeigen nimmst du dann MessageBox aus Windows.

In Windows ist kein Forms, nur die ganzen Windows-Konstanten, Records ...
die schmeisst der Linker aber wieder raus, wenn sie nicht verwendet werden.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 17:03
SysUtils, Dialogs, IdGlobal => Raus damit, um in nonVCL zu arbeiten brauchst du eigentlich nur Windows, Messages, und vielleicht ShellApi und WinSock.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 18:04
Da dies ein Kommandozeilenprogramm ist, braucht es die VCL nicht. Dialogs zieht aber ueber Forms indirekt die ganze VCL rein.
SysUtils fabriziert nur ca. 40 K Extracode. Ob ShellApi oder IdGlobal auch die VCL reinziehen weiss ich gerade nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#8

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 18:59
SysUtils saugt keine VCL rein ... die erstellt sich selber die nötigen Fenster,
allerdings wird in SysUtils alles für die ExceptionBehandlung geladen, also wenn man da was benötigt, dann ist die schon wichtig.

Und was Dialogs angeht ... das wurde ja schon gesagt ... raus damit, das Zeugs darin sollte in Konsolenanwendungen ja eh nicht verwendet werden.

Windows verursacht auch kaum Overhead und es bindet auch kaum andere Units mit ein (Constants und so'n Zeugs.

ShellAPI und IdGlobal da mußt du schon selber wissen, ob's benötigt wird ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 8. Feb 2007, 20:12
Zitat von himitsu:
SysUtils saugt keine VCL rein ... die erstellt sich selber die nötigen Fenster,
allerdings wird in SysUtils alles für die ExceptionBehandlung geladen, also wenn man da was benötigt, dann ist die schon wichtig.
SEH laeuft auch ohne Sysutils.

Reines nonVCL benutzt nur die System und SysInit sowie Win32-APIs. Strings, als Compiler-Magic, sind erlaubt.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Größe von Kommandozeilen Programm (EXE) reduzieren...

  Alt 9. Feb 2007, 04:26
SysUtils bringt wie gesagt ca 40 K ueber seine initialization section ein. Reine Header-Units wie Windows bringen selbst gar keinen Code ein.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz