Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Was sind Relocation Pointer Table und Overlaynumber (EXE)? (https://www.delphipraxis.net/18119-sind-relocation-pointer-table-und-overlaynumber-exe.html)

NicoDE 15. Mär 2004 11:50

Re: EXE mal wieder
 
Zitat:

Zitat von Dannyboy
Könnte ich 100%ig davon ausgehen, dass die Datei noch funktioniert, wenn ich den kompletten reloc. Table entfernen würde?

Zu 99%.
Wenn zum Beispiel jemand Dein Programm unter Wine ausführt, kann es in einigen Fällen dazu kommen, dass das Image nicht an die bevorzugte Adresse geladen werden kann. Das gleiche gilt für Adressen oberhalb von 2GB bzw. 3GB, die durch Systembibliotheken blockiert sein könnten (auf die Idee sollte man ohnehin nicht kommen, aber wer weiss :))...
Im Normalfall kann man sowas aber vernachlässigen.


Gruss Nico

Dannyboy 15. Mär 2004 14:25

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
@NicoDE

Ist Wine nicht ein Windows-Emulator für Unix/Linux?
Na ja, wenn da mein Exe-Komprimierer nicht laufen sollte, dann macht
das nix. :mrgreen:

Und das mit der 3GB Grenze, na ja .... unwahrscheinlich. :wink:

NicoDE 15. Mär 2004 14:39

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Dannyboy
Ist Wine nicht ein Windows-Emulator für Unix/Linux?

"Wine Is Not an Emulator" ;)
http://www.winehq.com/site/myths

Dannyboy 15. Mär 2004 14:47

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Ok, dann nenn' ich es Implementator, da es die API implementiert. 8)

Luckie 15. Mär 2004 17:34

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Bei mir hat das irgend wie nie viel gebracht. Das höchste aller Gefühle waren mal 4 KB bei einer 794 KB großen Exe. :roll:

Dannyboy 16. Mär 2004 09:20

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Liste der Anhänge anzeigen (Anzahl: 3)
Zitat:

Zitat von Luckie
Bei mir hat das irgend wie nie viel gebracht. Das höchste aller Gefühle waren mal 4 KB bei einer 794 KB großen Exe. :roll:

Oh wow! :o
Dann müsste diese EXE ja 1024 Relocation Pointer Einträge gehabt haben. So wie ich das
verstanden habe sind diese Einträge immer ein vielfaches von der Zahl 4. Das sind 'ne
ganze Menge Einträge in Anbetracht der Tatsache, dass EXE-Dateien auch ohne sie funktionieren. :mrgreen:
Betrachtet man aber die Größe Deiner EXE (794 KB), dann sind die 4 KB Verkleinerung sehr wenig,
klar.

@LarsMiddendorf:
Yup, das mit der Notepad-EXE stimmt tatsächlich! Siehe Bild (NOTEPAD.jpg) im Anhang.

Ich häng' hier gerade das Programm an, mit dem man EXE-Header lesen kann. Nix besonderes.
(Anhang)

Zitat:

Zitat von LarsMiddendorf
Overlays gibt es unter Windows nicht mehr.

Da fällt mir ein, dass Delphi beim Compilieren die Overlaynumber auf 001AH setzt. (Siehe
Datei Delphi_Overlay.jpg im Anhang)

Ich dachte bisher, wenn die Overlaynumber Null ist, dann gilt die EXE als
Hauptprogramm (laut Definition), deshalb verstehe ich nicht, warum Delphi
die Overlaynumber setzt.
Warum setzt Delphi denn Overlays und was bewirkt das? :gruebel:
Worin macht sich der Unterscied bemerkbar? :gruebel:

NicoDE 16. Mär 2004 12:51

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Dannyboy
Ich dachte bisher, wenn die Overlaynumber Null ist, dann gilt die EXE als Hauptprogramm (laut Definition)

Ist eher als Richtlinie/Anhaltspunkt zu verstehen.

Zitat:

Zitat von Dannyboy
Warum setzt Delphi denn Overlays und was bewirkt das?

Die Frage kann Dir wahrscheinlich nur der Entwickler des Delphi-Linkers beantworten.
(Vielleicht ist es nur ein Zahlen-/Wortspiel - 0x1A = ACSII-Zeichen 'sub' -> s(t)ub :))

Zitat:

Zitat von Dannyboy
Worin macht sich der Unterscied bemerkbar?

Bemerkbar macht es sich sich nicht. Der Image-Loader geht dann anders mit der Größe der Datei auf der Platte und mit der Anzahl der Seiten im Header um. Es macht den Ladeprozess im ganzen nur etwas komplizierter - wenn der verwendete Image-Loader überhaupt mit Overlays umgehen kann. Bei solch einem kleinem Programm wie dem Stub ist es ohnehin unwichtig (ob die Nachricht, dass dieses Programm Windows benötigt, nun erscheint oder nicht, interessiert kaum jemand).

LarsMiddendorf 16. Mär 2004 14:15

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Du liest nur den Dos Header des Programms aus. Der Dos Teil gibt, wie schon gesagt, nur eine kurze Meldung aus. Der eigentliche Win32 PE Header folgt erst nach dem Dos Stub. Für diese kurze Meldung werden vermutlich niemals Relocations wirklich gebraucht. In dem Text, zu dem ich weiter oben den Link gepostet habe, ist beschrieben wie man den PE Header ausliest.

Dannyboy 16. Mär 2004 14:52

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
O.k., ich danke Euch. Habe mir mal eben den wirklichen WIN32 PE HEADER angesehen ...
der ist ja krass komplex. :shock: :shock: :shock:
Wer soll denn da durchblicken, mal ganz abgesehen von den ganzen undefinierten Bytefolgen!
Sieht so aus, als müsste ich mich da erst einarbeiten, um mein erstes,
selbst-extrahierendes File zu schreiben. :kotz:
Egal, wenigstens habe ich den Stub-Teil bereits hinter mir. :mrgreen:
Danke noch mal an Euch alle,:cheers:, ich werde mir nun den gesamten PE_HEADER Teil
zu Gemüte führen. Wenn ich Fragen hab', dann schrei' ich einfach. :zwinker:
Also dann. :coder:

Luckie 16. Mär 2004 15:10

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Dannyboy
selbst-extrahierendes File zu schreiben. :kotz:

Wie schon gesagt, wenn es nur das ist, brauchst du den ganzen PE_HEADER Kram nicht. Du kannst Dateien an eine Exe dranhängen und sie bleibt noch ausführbar. Und die Exe kann dann ihre Anhänge extrahieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Seite 2 von 4     12 34      

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