Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
prog:lazarus:types:pointer [06/06/2020 19:30] thierry [Length et SizeOf] |
prog:lazarus:types:pointer [17/06/2023 17:09] (Version actuelle) thierry [Changement de type grâce aux pointeurs] |
||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
sous la forme adresse/longueur comme : | sous la forme adresse/longueur comme : | ||
<code delphi> | <code delphi> | ||
- | APIWindows(AHandle, pchar(vBuffuer), length(vBuffer)); | + | APIWindows(AHandle, pchar(vBuffer), length(vBuffer)); |
</code> | </code> | ||
On serait tenté d'avoir la taille du Buffer avec ''sizeof'' (comme en C) mais il faut utiliser ''length'' | On serait tenté d'avoir la taille du Buffer avec ''sizeof'' (comme en C) mais il faut utiliser ''length'' | ||
Ligne 27: | Ligne 27: | ||
end; | end; | ||
+ | </code> | ||
+ | <note tip>Pour changer de type on peut utiliser aussi ''absolute''\\ | ||
+ | Voir ici : [[https://wiki.freepascal.org/Absolute]]</note> | ||
+ | |||
+ | ===== Transmettre un Objet via un Int64 ===== | ||
+ | ==== Int64 -> TObject ==== | ||
+ | |||
+ | <code delphi> | ||
+ | var | ||
+ | vI:int64; | ||
+ | vO: TObject; | ||
+ | begin | ||
+ | vO:=TObject(pointer(vI)); | ||
+ | end; | ||
+ | </code> | ||
+ | ==== TObject -> Int64 ==== | ||
+ | <code delphi> | ||
+ | var | ||
+ | vI:int64; | ||
+ | vO: TObject; | ||
+ | begin | ||
+ | vI:=ptrint(vO); | ||
+ | end; | ||
</code> | </code> | ||