Ceci est une ancienne révision du document !
Pointers
A Noter
Remplir une variable de 0
ZeroMemory(@vVar,SizeOf(vVar));
Length et SizeOf
Souvent dans les appels aux Api Windows on utilise un Buffer.
sous la forme adresse/longueur comme :
APIWindows(AHandle, pchar(vBuffer), length(vBuffer));
On serait tenté d'avoir la taille du Buffer avec sizeof
(comme en C) mais il faut utiliser length
SetLength(vBuff,24 ); vTestS:=sizeof(vBuff); // = 8 (la taille du pointeur probablement) vTestL:=length(vBuff); // = 24 (la taille réelle du buffer)
Changement de type grâce aux pointeurs
function IToQ(val: int64): QWord; var pQ: PQWord; begin pQ := @val; Result := pQ^; end;
Transmettre un Objet via un Int64
Int64 -> TObject
var vI:int64; vO: TObject; begin vO:=TObject(pointer(vI)); end;
TObject -> Int64
var vI:int64; vO: TObject; begin vI:=ptrint(vO); end;
Sources
Vous pourriez laisser un commentaire si vous étiez connecté.