Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - zeiger auf 'programmstart'
focus - Fr 05.09.03 11:20
Titel: zeiger auf 'programmstart'
hi ihr :)
hat jemand eine ahnung wie ich rausfinden kann wo mein programm im speicher liegt? dachte erst dran mir eine dummy-variable zu generieren und mir einen zeiger drauf geben zu lassen aber leider kriegt man dadrüber ja auch nur relativ , bezogen auf den programmstart die adresse.. :(
gruss
michael
Motzi - Mo 08.09.03 09:26
Was meinst du mit "wo mein Programm liegt"? Meinst du die Base-Adress an die dein Programm geladen wird? Die kannst du in den Linker-Optionen selbst einstellen. Bei exe-Dateien entspricht die Base-Adresse des Linkers immer der Adresse an die sie auch geladen wird - bei Dlls muss das nicht unbedingt der Fall sein, falls bereits eine Dll an der Position geladen ist wo die 2te hinsollte muss die 2te verschoben werden, das bedeutet auch, dass viele absolute Adressen neu berechnet werden müssen (Reallocation-Tabelle).
Wenn du jetzt einfach die Adresse wissen willst an der dein Modul liegt nimm einfach die hInstance-Variable. Im PSDK findet man zwei verschiedene Variablen-Typen - HInstance und HModule - seit Win9x unterscheiden sich diese beiden nicht mehr. Ein solches Modul-Handle entspricht seit Win9x der Base-Adresse des Moduls...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!