![]() |
AW: 20 Jahre in der DP
Das witzige ist: Ich nutze seinen EDA bis heute regelmäßig:
![]() |
AW: 20 Jahre in der DP
Wenn ich meine MTCL umbauen würde, so dass ich die Unit System.Classes nicht mehr brauche und auch die API-Funktionen direkt deklarieren würde, würden die Exen sicher auch sehr klein werden. Das hatte ich allerdings nicht vor.
|
AW: 20 Jahre in der DP
Zitat:
Delphi-Quellcode:
Ergebnis: 240 kB
program Project1;
{$APPTYPE CONSOLE} begin end. Und da ist ja nun wirklich nicht allzu viel Funktion drin :wink: |
AW: 20 Jahre in der DP
Zitat:
Ich hatte mit Delphi 3 angefangen. Hat mir ein bekannter aus dem Sportverein besorgt, der zu der Zeit Informatik studiert hat. |
AW: 20 Jahre in der DP
Also mit dem aktuellen Delphi 11.3 Patch 1 erzeugt der Win32 Compiler im Release eine Exe mit 46.080 Byte.
|
AW: 20 Jahre in der DP
Kompiliert man das noch mit Runtime-Packages (RTL) reduziert sich die Größe auf ganze 8.704 Byte.
Aber mal ehrlich: Das ist doch alles vollkommen weltfremd. |
AW: 20 Jahre in der DP
Klar, aber dann mußt'e auch die BPLs mitgeben.
Dann kann man noch bei der erweiterten RTTI bissl was abschalten.
Delphi-Quellcode:
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
![]() Vermutlich könnte man sich auch mal wieder eine abgespeckte System und SysInit (PAS bzw. DCU) basteln. Siehe DDDK (Delphi Driver Development Kit). sowie mit NonVCL arbeiten, unnötige RTL/VCL-Resourcen löschen, keine Exception-Behandlung (SysUtils weglassen), PE-Realocations löschen (dann nervt Einen auch nicht mehr dieses blöde ASLR) und natürlich noch mit EXE-Packern rumpfuschen. |
AW: 20 Jahre in der DP
Zitat:
Aber im Wesentlichen sind die 40 KByte ja der initialization-Abschnitt der System.pas und den kann man nicht wirklich wegoptimieren. |
AW: 20 Jahre in der DP
Zitat:
|
AW: 20 Jahre in der DP
NonVCL ist der Wahre Weg.
Es ist eigentlich nur ein Konzept, bzw. der Name aus Sicht eines Delphianers, also nicht das VCL-Framework zu verwenden (welche aber intern auch diese WinAPI nutzt), sondern direkt mit der WinAPI zu arbeiten. Grundsätzlich gibt es da zwei Wege. * die DialogAPI, also Form-Ressourcen zu erstellen und sie als "Dialog" zu laden * oder manuell via CreateWindow die Form und jede Komponente zu erstellern. Und zusätzlich bietet Windows noch andere APIs an * TaskDialog (was wir "neuerdings" in der VCL auch nutzen) * WinForms * WPF * das geile Ding, was die für's UAC benutzen, was aber hart im Explorer eingebaut wurde, anstatt in eine DLL :wall: Oder Frameworks von anderen Anbietern * GTK+ * Qt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 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