Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿como obtener direcciones de memoria...? (https://www.clubdelphi.com/foros/showthread.php?t=75237)

usuario87 07-08-2011 01:12:10

¿como obtener direcciones de memoria...?
 
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.

Código Delphi [-]
...
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. :)

Cita:

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:
Código Delphi [-]
...
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

Un saludo.


La franja horaria es GMT +2. Ahora son las 15:12:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi