Je suis en train de convertir du code assembleur vers le C++ et j'ai un petit souci d'interprétation..si vous pouviez m'aider..
j'ai 2 pointeurs définis (qui pointent sur des emplacements de méemoire que je vais dumper)
LPVOID pt1;
LPVOID pt2;
je voudrais en final que pt1 pointe vers l'adresse contenu dans le pointeur de pt2..
comment puis-je affecter pt1 de facon à ce qu'il pointe vers l'adresse contenu dans le pointeur pt2
example..
pt2->zone memoire :00 34 56 78
je voudrais que pt1 point vers l'adresse 78 56 34 00
merci de votre aide
Frenchy
TSH Team
Développeur F18 jane's - vieux jeux
PpHd Le 10/03/2005 à 14:19 pt1 = *((LPVOID*) ptr2);
?
Quesoft Le 10/03/2005 à 16:28Edité par Quesoft le 10/03/2005 à 16:31 Un pointeur en C est une valeur comme les autres.
ptr2 = ptr1 fait pointer ptr2 vers l'adresse pointée par ptr1, i.e. ptr1 et ptr2 pointent vers la même zone mémoire.
ptr2 = *ptr1 fait prendre à ptr2 la valeur à l'adresse pointée par ptr1. Cette valeur devait-être elle-même une adresse. Ce qui veut dire que ptr2 doit avoir le type suivant :
LPVOID *ptr1; //Pointeur vers un LPVOID
LPVOID **ptr2; // Pointeur vers un pointeur vers un LPVOID
Sinon, si le compilateur ne sait pas que LPVOID est un type pointeur, le cast de PpHd fait la job (TM).
Détruire SVP, double post.
merci de vos reponses en regardant de plus pres
pt1=(LPBYTE)(*(int*)(pt2)) est il correct?
si je reste en LPVOID il ne saura peut etre pas que la longueur de ladresse est de 4 bytes??
Frenchy
TSH Team
Développeur F18 jane's - vieux jeux
PpHd Le 10/03/2005 à 18:37 1. peut etre. mais ca devient gore.
2. Si.
PpHd Le 11/03/2005 à 09:22 Vu qu'il utilise LPBYTE, il doit se ****** completement des architectures non-*********
PpHd Le 11/03/2005 à 14:56 >Je trouve simplement currieux qu'il déréférence un int qui est la plupart du temps 16-bit,
32 bits sur PC $)
PpHd Le 11/03/2005 à 16:48 Lorsqu'on veut etre propre on n'utilise pas ls LPVOID, et autre *********
PpHd Le 11/03/2005 à 17:22 #include <stdint.h>
est mon ami.
Je sais trés bien que je peux être plus rigoureux..Chaque chose en son temps, l'important quand tu as une foule de problème c'est de les prendre un par un..Le problème ici est de trouver une solution à une écriture assembleur..c'est tout..
L'emploi des casts est important en C comme le montre cet exemple..
maintenant le fait que j'utilise un LPVOID ou autre peu importe l'important c'est de dominer ce que l'on fait en fonction des objectifs.
Merci de vos réponses ce post m'a été très instructif
Frenchy
TSH Team
Développeur F18 jane's - vieux jeux
PpHd Le 12/03/2005 à 12:07 Mon petit Linux a les meme tailles