Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Wie kommt man an den Wert von PByte

  Alt 31. Jan 2010, 19:07
Der Dereferenzierungsoperator in Delphi ist "^". D.h.:
Delphi-Quellcode:
var
  EinByte: Byte;
  EinPByte: PByte;
begin
  EineProzedur(EinPByte);
  EinByte := EinPByte^;
end;
Danach steht in EinByte der Wert auf den EinPByte zeigt.

Ich glaube nicht, dass es hier in diesem Beispiel mehrere Bytes sein können. Zwar werden Arrays in C gern als lose Pointer realisiert, aber um solche zu sein müssten irgendwo noch Längenangaben sein, die ich hier nicht sehe. (Bei PChar ist's etwas anders, da dort in der Regel #0 als Terminator agiert, und man daher auch ohne Längenangaben auskommt.)

Edit: Ich seh grad, das sind ja garkeine var-Parameter. In dem Fall:
Delphi-Quellcode:
var
  Major, Minor, Revision, Release: Byte;
  Foo: DWORD;
begin
  Major := 1;
  Minor := 2;
  Revision := 3
  Release := 4; // Beispielwerte halt :)
  Foo := GetDllVersion(@Major, @Minor, @Revision, @Release);
end;
"@" ist also das Gegenstück zu "^", dass einen Pointer auf die folgende Variable liefert.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat