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?