Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll (https://www.delphipraxis.net/143322-exe-dateien-kleiner-upx-windows-7-problem-ntdll-dll.html)

berens 13. Nov 2009 10:36


.exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Hallo mal wieder.

Nachdem ich eben stundenlang nach meinem Programmier"fehler" gesucht habe, weshalb meine Software nicht unter Windows 7 läuft, und geflucht habe, warum nur die Dateien aus dem fertigen Installer nicht laufen, aber die frisch kompilierten Dateien, bin ich dahinter gekommen, dass das Packprogramm UPX (um meine .exe Dateien kleiner zu machen) folgende Fehlermeldung produziert:

Zitat:

---------------------------
MeinProgramm
---------------------------
Zugriffsverletzung bei Adresse 77028C39 in Modul 'ntdll.dll'. Schreiben von Adresse 00000014.
---------------------------
OK
---------------------------
Ich verwende UPX 3.04w und komprimiere alle Dateien jeweils mit dem Befehl "upx.exe Project1.exe --force".
--force deshalb, weil es ab und zu Meldungen gab/gibt, dass es nicht komprimieren kann.
Steht vll. in Zusammenhang mit der Meldung oben, aber nicht unbedingt.

Die Systeme mit der Fehlermeldung haben beide Windows 7 Home Premium, einer 32 Bit und der andere 64 Bit. Auf Windows XP laufen die .exe Dateien problemlos.


Problem bekannt? Gibt es Abhilfen? Alternativen um die .exe Dateien (~2,5 MB) kleiner zu machen?

Lg Mathias

himitsu 13. Nov 2009 10:39

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Die Frage ist, warum man überhaupt unbedingt UPX und Co. verwenden muß, wo es doch viele Nachteile gibt (vorallem vom Speichermanagemente her) und, wie hier, sogar Fehler verursacht.


Zitat:

Zitat von berens
Alternativen um die .exe Dateien (~2,5 MB) kleiner zu machen?

kleiner/optimaler programmieren?

Bernhard Geyer 13. Nov 2009 10:42

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Da wird vermutlich der entpacker-Algorithmus noch noch nicht Win7 kompatible sein. Die Adresse deutet jedenfalls darauf das irgendwas nicht korrekt initialisiert wurde.

berens 13. Nov 2009 10:46

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Naja, leider kommt unser Programmpaket mit ~ 10 .exe Dateien daher. Uns schon alleine von der Last des FTP-Servers lohnt es sich, die Dateien zu komprimieren (> 60% Traffic Einsparung).

Mir war allerdings nicht bewusst, dass UPX so viele Probleme verursacht. Muss ich mal die SuFu nutzen.

Um die .exe kleiner zu bekommen, werde ich mal andere Threads durchsuchen, eine kleine Zusammenfassung hier wäre aber auch ganz nett ;)

Ich denke, ich schaffe die UPX-Komprimierung (erstmal) ab, damit ich auf der sicheren Seite bin.

Danke soweit.


Edit:
Zitat:

kleiner/optimaler programmieren?
Klar, sofern möglich ;) Leider brauchen die ganzen LMD und TMS Tools / units schon viel Platz in den .exe Dateien.

BUG 13. Nov 2009 10:58

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Zitat:

Zitat von berens
Uns schon alleine von der Last des FTP-Servers lohnt es sich, die Dateien zu komprimieren (> 60% Traffix Einsparung).

Du könntest die Dateien auch einfach zippen, das würde Traffic sparen und dir UPX ersparen.

MFG,
Bug

OldGrumpy 13. Nov 2009 11:01

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Wenn die Dateien sowieso in einer Installation stecken, lohnt es sich vermutlich eher, einen Installer mit ordentlicher Kompression zu verwenden. Was den FTP-Traffic angeht, kann man zusätzlich einen kleinen Webupdater entwickeln der FTP mit Kompression beherrscht und nur Delta-Downloads macht. Dann braucht nicht jeder User das grosse Installationsarchiv herunterladen sondern nur die Teile die für ihn relevant sind.

//Edit: Genau wegen solcher Probleme gibts diesen Check in UPX der manchmal das Komprimieren einer Exe verweigert. Und wer die Warnung ignoriert, muss halt mit den Folgen leben :mrgreen:

berens 13. Nov 2009 11:03

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Habe lustigerweise selbiges festgestellt. Unser Installer wird standardmäßig über NSIS komprimiert, und dann nochmal gezippt. Somit ist der Download selbst nicht größer geworden ^^.

Interessanterweise bekomme ich diese Fehlermeldung aber immernoch, wenn ich das Programm direkt im Anschluß an (aber durch) den NSIS Installer starten lasse ("Project1.exe nach beendigung der Installation starten"), auch wenn Project1.exe nicht komprimiert ist...

Bei nachfolgenden Starts ist die Meldung nicht zu sehen. Wenn ich den Installer nicht das Programm starten lasse, ist die Meldung ebenfalls nicht zu sehen. Schon merkwürdig.

Assertor 13. Nov 2009 11:09

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Hi,

UPX gepackte Programme funktionieren Einwandfrei unter Win 7 (x32 und x64). Eine Anpassung für die Entpackroutine ist nicht erforderlich (warum sollte es auch, das PE Format von < Win7 ist ja in jedem Fall mit Win7 Kompatibel).

Die Diskussion der Notwendigkeit hat auch nichts mit dem Problem zu tun: Entwickler (@berens), der Fehler liegt bei Dir. Insbesondere das Force sollte nie notwendig sein, wenn Du es schon anwendest mußt Du eben selbst dafür sorgen, dass alle unkomprimierbaren Resourcen dies trotz Komprimierung überstehen. Ich keine keinen einzigen Fall wo Force notwendig ist - und setzte UPX seit vielen vielen Jahren ein.

Und die ganzen Argumente gegen UPX sind technisch sowieso seit vielen vielen Jahren hinfällig. Es gibt immer gute Gründe für und gegen den Einsatz jedes Tools. Frage: Einsatzgebiet (z.b. hier portable Medien).

Ergo: Kein Force bei UPX

Roter Kasten: Falls es auch so kracht, liegt es an Deinem Code.

Gruß Assertor

berens 13. Nov 2009 11:21

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Naja... wie kann ich denn rausfinden weshalb UPX sich weigert, die .exe zu komprimieren?

Sau merkwürdig: Wenn ich den Installer im Windows XP SP 2 Kompatibilitätsmodus laufen lasse, gibt es keine Fehlermeldung. Es scheint also zu sein, dass der Installer meine .exe mit niedrigeren Rechten aufruft, als das Startmenü oder der Doppelklick auf die .exe (wenn der Kompatib. Modus nicht benutzt wird).

Assertor 13. Nov 2009 11:24

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
 
Hi,

Zitat:

Zitat von berens
Naja... wie kann ich denn rausfinden weshalb UPX sich weigert, die .exe zu komprimieren?

Das erhälst Du als Textausgabe des Kompressors. Falls die Details nicht reichen, upx mit Parameter -v aufrufen (also upx -v exename.exe).

Diese Meldung dann hier posten als Anhang (Screenshot).

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Seite 1 von 4  1 23     Letzte »    

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