![]() |
exe-Datei wird nicht mehr kleiner - Ressourcen
Hi ihrs
In einem Programm von mir speicher ich Daten als Ressourcen in eine exe-Datei. Mein Problem ist, dass wenn ich die Ressourcen wieder lösche die exe Datei nicht wieder kleiner wird. Zwar wird die exe nicht größer, wenn ich Daten wieder in die exe reinkopiere, bis die größe der gelöschten Daten erreicht ist, aber es ist trozdem eine Platzverschwendung, solange keine neuen Daten reinkopiert werden. Weiß jemand eine Lösung, wie ich die exe wieder kleiner bekomme nach dem löschen der Daten? Vielen Dank |
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
Die Resourcen sind ja in der *.res-Datei gespeichert, hast du sie dort gelöscht und dein Programm neu erstellt?
|
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
Wie löscht du die Ressourcen aus der Exe?
|
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
@Dax: Ich kopiere die Ressourcen Dateien zur Laufzeit in die exe
@Luckie:
Delphi-Quellcode:
var
hUpdate: THandle; begin hUpdate:= BeginUpdateResource(pchar(ModuleFileName), false); if hUpdate <> INVALID_HANDLE_VALUE then begin UpdateResource(hUpdate, pchar(ResType), pchar(RessourceFileName), 0, nil, 0); EndUpdateResource(hUpdate, false); end |
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
@Luckie: Gibt es denn noch eine andere Möglichkeit die Ressourcen zu löschen?
@All: Need help! (Das Programm soll auf einem USB Stick laufen also wäre mir der Speicherplatzt schon wichtig) |
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
Ich hab zwar keine Ahnung, aber vielleicht probiertst du mal mit
Delphi-Quellcode:
sämtliche Resourcen zu löschen und die änderungen in die EXE speichern lassen mit EndUpdateResouce...
hUpdate:= BeginUpdateResource(pchar(ModuleFileName), TRUE);
EndUpdateResource(hUpdate, false); und dann die weiterhin benötigten Resourcen wieder hinzuzufügen?
Delphi-Quellcode:
Ist vielleicht ein Versuch wert, oder?
hUpdate:= BeginUpdateResource(pchar(ModuleFileName), false);
// Alle Resourcen wieder hinzufügen... UpdateResource(hUpdate, pchar(ResType1), pchar(RessourceFileName1), 0, nil, 0); UpdateResource(hUpdate, pchar(ResType2), pchar(RessourceFileName2), 0, nil, 0); // ... EndUpdateResource(hUpdate, false); |
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
Nein, dass macht die exe leider nicht kleiner.
Hätte sonst noch jemand eine Idee? |
Re: exe-Datei wird nicht mehr kleiner - Ressourcen
Was du mit den o.g. Funktionen machst ist nur, daß du die Referenzen aus dem entsprechenden Verzeichnis der PE entfernst. Jedoch bräuchtest du ein Realignment - dazu konsultierst du am besten die einschlägigen Infos zum PE-Format (LUEVELSMEYER usw.).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz