delphi adresse de pointeur
En Delphi:
Comment puis-je obtenir l'adresse (0x2384293) un pointeur de points?
var iValue := Integer;
iptrValue := PInteger;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
iptrValue := @iValue;
iValue := 32342;
//Should return the same value:
Edit1.Text := GetAddressOf(iptrValue);
Edit2.Text := GetAddressOf(iValue);
Donc, qu'est-ce que GetAddress dans la réalité 🙂
GetAddressOf n'existe pas. il a été pseudocode comme indiqué dans "en réalité" 🙂
OriginalL'auteur Acron | 2009-07-23
Vous devez vous connecter pour publier un commentaire.
À obtenir l'adresse de quelque chose, utilisez la
@
de l'opérateur ou de laAddr
fonction. Vous avez déjà démontré que l'utilisation correcte de cette. Vous avez obtenu l'adresse deiValue
et stockées dansiptrValue
.À affichage une adresse, vous pouvez utiliser le
Format
fonction pour convertir une valeur de type pointeur vers une chaîne de caractères. Utiliser le%p
chaîne de format:Qui permettra d'afficher l'adresse de l'
iptrValue
variable, puis l'adresse stockées dans cette variable, puis le valeur stockée à cette adresse.La
iptrValue
déclaration de variable se réserve quelques octets en mémoire et d'associer un nom à eux. Supposons que l'adresse du premier octet est$00002468
:La
iValue
déclaration se réserve un autre morceau de la mémoire, et il va probablement être adjacente à la déclaration précédente de la mémoire. DepuisiptrValue
est de quatre octets de large, l'adresse deiValue
serait$0000246C
:Les cases que j'ai dessiné sont vides pour l'instant, car nous n'avons pas discuté de ce que les valeurs de ces variables maintenez-la enfoncée. Nous avons seulement discuté des variables " adresses. Maintenant pour le code exécutable: Vous écrivez
@iValue
et stocker le résultat dansiptrValue
, de sorte que vous obtenez ceci:Enfin, lorsque vous affichez les résultats de la
Format
fonction à partir de ci-dessus, vous voyez cette valeur:OriginalL'auteur Rob Kennedy
Juste lancer un nombre entier 🙂
Autant que je me souvienne, il y a aussi une chaîne spécificateur de format (%x? %p?) qui va magiquement en forme comme une chaîne hexadécimale de 8 caractères.
OriginalL'auteur moobaa
GetAddressOf() retourne l'adresse de la variable.
Ce que vous voulez, c'est la valeur du pointeur. Pour ce faire coulé le pointeur vers un type entier non signé (Longword si je m'en souviens à droite). Ensuite, vous pouvez convertir ce nombre entier en une chaîne de caractères.
OriginalL'auteur sharptooth
Voici mon propre exemple de l'adresse de la fonction:
Exemple d'utilisation 2 de la variable mêmes données:
OriginalL'auteur goadreamer
C'est en réalité un ULong vous avez besoin:
Je n'ai pas trouvé la GetAddressOf fonction de Delphi 2006. Il semble être un VB fonction?
OriginalL'auteur Ralph M. Rickenbach