Zitat von
Frickeldrecktuxer_TM:
Rumgefummele mit Modulhandles würde ich beispielsweise nicht wagen, denn niemand garantiert mir, daß der numerische Wert des Handles die Basisadresse des Moduls ist.
Ja ne ist klar ^^. Wäre ja schlimm wenns nicht so wäre. ModuleHandle = BaseAdresse. Das ist bis XP 100% so.
@0x00400000
Die Applikation hat das im
PE Header stehen. Dieser Wert wird vom compiler festgelegt. Bei Delphi kann man das unter Projekt -> Optionen -> Linker einstellen. Als Standard hat sich dise Adresse etabliert. Man kann auch jede andere wählen, sollte diese belegt sein (durch die kernel32.dll oder ntdll.dll oder unterhalb der 0x00100000 Grenze liegen) dann wird die EXE an einer anderen Stelle geladen und durch die Relocation Tabelle die Globalen Variablen usw. wieder richtig hergetsellt.