La variable aPointeur est aussi de type Pointer...
Mon problème est que j'ai une erreur à la compilation sur la dernière ligne de cette fonction : "Opérateur non applicable à ce type d'opérande", et la compilation refuse donc de se faire...
Le déréférencement de pointeur effectué est volontaire, et je ne comprend pas pourquoi ça ne passe pas...
Quelqu'un saurait m'expliquer mon erreur ?? DelphiProg ? Julio ?? AU SECOURS !!
jinh68
Messages postés215Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention 1 septembre 2006 12 juil. 2005 à 12:38
Salut,
Bon je ne m'appelles pas DelphiProg, ni Julio mais deux choses posent problème dans ton code:
- sizeOf(ValueP) renverra toujours 4 ("taille" d'un pointeur).
- Tu ne peux effectivement pas copier la zone pointée comme ça. Utilise
plutot un CopyMemory, mais dans tous les cas, ce genre de manip avec
des pointeurs non-typés n'est pas conseillée car la taille des données
pointées ne peut être connue.
divadav
Messages postés94Date d'inscriptionlundi 13 janvier 2003StatutMembreDernière intervention22 janvier 20092 12 juil. 2005 à 14:25
Tu penses qu'on ne peut pas avoir la taille ?? Même en déréférençant le pointeur => sizeOf(ValueP^) ??
Après quelques tests, j'ai l'impression que la fonction SizeOf me renvoie toujours une taille de 4 octets !! Même en faisant sizeOf(TComboBox), ou sizeOf(TObject) !! C'est pourtant bien comme ça qu'on l'utilise ?!
Il doit bien y avoir un moyen de s'en sortir ! Ce n'est pas par hasard que j'utilise des pointeurs non typé : derrière, je veux pouvoir manipuler n'importe quel type de composant (ou presque !).
La grande question, c'est : À partir d'un simple pointeur, comment savoir ce qui se cache derrière ??
Par contre, merci pour le copyMemory, j'y pensait plus du tout !
jinh68
Messages postés215Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention 1 septembre 2006 12 juil. 2005 à 14:31
Pour avoir testé pendant très longtemps, je peux te dire qu'à partir
d'un pointeur non-typé nous ne pouvons pas retrouver la taille de la
zone pointée.
Concernant le sizeOf c'est normal qu'il renvoit toujours 4 octets, car
une objet "est" un pointeur, c'est juste transparent pour l'utilisateur
sous Delphi. Pour un objet, la taille de l'instance est donnée par
InstanceSize par exemple.
walid2876
Messages postés49Date d'inscriptionmardi 26 avril 2005StatutMembreDernière intervention31 août 2008 12 juil. 2005 à 23:40
Bonjour
Attention : une variable Pointer ne peut etre déréferencée
Mettre un ^ apres une variable Pointer declenche une erreur de compilation
Pour acceder a ces donnée il faux la transtypée ds un autre type pointeur et apres fait la déréferencer...