Entwickler-Ecke
Sonstiges (Delphi) - Modularisieren aber wie!?
xel - Di 27.08.02 17:51
Titel: Modularisieren aber wie!?
Hi All,
also ich mein Programm platzt aus allem Nähten... die "exe" datei ist schon 1,8 MB Gross... jetzt will ich es zerteilen... d.h. auch die Forms.. usw... mit DLL könnte ich es ja machen aber gibt es da noch andere möglichkeiten?
Danke für alle Antworten....
Xel
Klabautermann - Di 27.08.02 18:20
HAllo,
das mit den DLLs ist gar nicht so einfach, da diese nicht Objekt Orientiert sind. Wenn du z.B. MIDI-Forms in dieser verwenden willst wird das wahrscheinlich scheitern (mit ist kein Weg bekannt wie das funktioniert [wenn jemad einen Kennt immer her damit]).
Du kannst dein Programm einfach ohne die BLS Linken (Projekt->Optionen->Linker->Mit Laufzeipackages Compilieren). Das macht deine EXE erheblich kleiner, du musst aber die Laufzeitpackages (*.BPL), äquivalent zu den RuntimeDlls von Visual Basic, mit außliefer. Aber das eben nur einmal, deine EXE kannst du dann erweitern und austauschen ohne das due die BPLs jedesmal mit rausgeben musst. Lediglich wenn du eine neue Komponente, welche in einem bisher noch nicht verwendeten BPL enthalten ist, verwendest musst du diese eine BPL mit ausliefern.
Gruß
Klabautermann
GPF - Di 27.08.02 19:33
Ist die Größe ein Problem?
Klabautermann hat vollkommen recht - Formulare in DLL's auszulagern ist umständlich und fehlerträchtig. Sofern Du keine wirklich modulare Lösung anstrebst oder Plugins für Dein Programm zulassen möchtest solltest Du darauf verzichten.
Aber zurück zu meiner Frage - stört Dich die Größe der Datei wirklich?
Selbst wenn Du massig Ressourcen (große Grafiken, Sounddateien, etc.) in das Hauptfile integrierst wirst Du kein Performanceverlust spüren, da Windows nur die Programmteile lädt, die auch wirklich benötigt werden.
Sofern Du nur eine Instanz oder ziemlich wenige Instanzen Deines Programmes zuläßt könnte auch ein Exepacker helfen. UPX (googeln) komprimiert meine compilierten Programme auf 1/2 bis 1/3 Größe.
Auch solltest Du Ressourcen nicht mit in die Exedatei auslagern.
Der Grund für diese Beschränkung ist simpel - der Exepacker packt die Datei komplett, entpackt diese komplette Exe-Datei in den Arbeitsspeicher bei Ausführung und ruft diese dort auf. Wenn Du also mehrmals das Programm gleichzeitig öffnest wird jedesmal wieder die gesamte Exedatei im Arbeitsspeicher entpackt - und zwar für jede Instanz.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!