Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Addresse eines var Parameters ermitteln

  Alt 3. Mai 2023, 11:35
Du kannst doch einfach einen Pointer daraus machen. Das ist im Hintergrund auch nichts anderes und so wird es in anderen Sprachen ja bei der Übersetzung ohnehin deklariert (weshalb dann dort auch null übergeben werden kann).

Wenn du die Adresse mit @ abfragst, sollte die aber auch nil sein.

// EDIT:
Delphi-Quellcode:
procedure Test(var a: Int32);
begin
  ShowMessage(IntToHex(NativeUInt(@a), 8) + ' - ' + BoolToStr(Assigned(@a), True));
end;

type
  PInt32 = ^Int32;

procedure TestA(a: PInt32);
asm
  call Test;
end;

procedure ExecTest;
var
  b: Integer;
begin
  b := 42;
  Test(b);
  TestA(@b);
  TestA(nil);
end;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke ( 3. Mai 2023 um 11:41 Uhr)
  Mit Zitat antworten Zitat