AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
Thema durchsuchen
Ansicht
Themen-Optionen

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

Offene Frage von "berens"
Ein Thema von berens · begonnen am 13. Nov 2009 · letzter Beitrag vom 18. Feb 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

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

  Alt 13. Nov 2009, 10:36
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 13. Nov 2009, 10:39
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 von berens:
Alternativen um die .exe Dateien (~2,5 MB) kleiner zu machen?
kleiner/optimaler programmieren?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#3

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

  Alt 13. Nov 2009, 10:42
Da wird vermutlich der entpacker-Algorithmus noch noch nicht Win7 kompatible sein. Die Adresse deutet jedenfalls darauf das irgendwas nicht korrekt initialisiert wurde.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#4

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

  Alt 13. Nov 2009, 10:46
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.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

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

  Alt 13. Nov 2009, 10:58
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
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#6

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

  Alt 13. Nov 2009, 11:01
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
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#7

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

  Alt 13. Nov 2009, 11:03
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.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

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

  Alt 13. Nov 2009, 11:09
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
Frederik
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#9

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

  Alt 13. Nov 2009, 11:21
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).
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#10

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

  Alt 13. Nov 2009, 11:24
Hi,

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
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:25 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