Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#1

Pointer Problem

  Alt 22. Apr 2021, 11:07
Hallo,

ich schreibe eine DLL und ein Testprogramm.
Die DLL hat eine procedure die einen Pointer bekommt:

Delphi-Quellcode:
procedure DoIt(Num: Byte; Ptr: Pointer);
begin
  // tuwas
end;
Ich rufe die aus einem OnClick Handler testweise auf:

Delphi-Quellcode:
procedure TMainForm.OnCLick(Sender:TObject);
var
  Data : TBytes;
begin
  SetLength(Data, 4);
  Data[0] := 1;
  Data[1] := 2;
  Data[2] := 3;
  Data[3] := 4;

  DoIt(Length(Data), @Data[0]);
end;
Wenn ich mit dem Debugger jetzt schaue was da passiert,
dann zeigt der Ptr in DoIt zwar auf die selbe Speicheradresse
wie @Data[0], aber als Inhalt steht da was ganz anderes drin.

Warum? Was mache ich falsch?
  Mit Zitat antworten Zitat