Ver la Versión Completa : ¿como obtener direcciones de memoria...?
usuario87
07-08-2011, 01:12:10
hola estoy empezando con delphi y me acabo de registrar, podrian decirme como podria obtener la direccion de una funcion hecha por mi, tambien la direccion de una variable numerica (DWORD integer) y la direccion de cadena de una variable string, el entorno que uso: delphi 7 segunda edicion v7.2.
gracias.
ecfisa
07-08-2011, 01:38:13
Hola usuario87.
...
implementation
var
DW: DWORD;
ST: string;
function MiFuncion: Integer;
begin
//
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Format('MiFuncion: %p %sDW: %p %sST: %p', [@MiFuncion, #10#13,@DW, #10#13, @ST]));
end;
Saludos.
usuario87
07-08-2011, 03:46:46
esea nada mas con poner delante de la variable o funcion el "@" (arroba) ¿me devuelve la direccion de memoria?, bien, gracias.
ecfisa
07-08-2011, 04:22:44
Hola usuario87.
Primeramente te pido disculpas por no haberlo advertido... Muy bienvenido a los foros del Club Delphi. :)
esea nada mas con poner delante de la variable o funcion el "@" (arroba) ¿me devuelve la direccion de memoria?, bien, gracias.
Si así es. También existe la función Addr que es equivalente al operador "@".
Te pongo otro ejemplo:
...
function prueba: Integer;
begin
//
end;
procedure TForm1.Button1Click(Sender: TObject);
var
dw: DWORD;
st: string;
p1,p2,p3: Pointer;
begin
p1:= Addr(prueba);
p2:= @dw;
p3:= Addr(st);
Label1.Caption:= Format('prueba: %p',[p1]);
Label2.Caption:= Format('dw: %p',[p2]);
Label3.Caption:= 'st: '+IntToHex(Integer(p3), 8); // (*)
end;
(*) Mostrado con la función IntToHex, sugerido anteriormente por escafandra en este post (http://www.clubdelphi.com/foros/showpost.php?p=408382&postcount=2)
Un saludo.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.