Réallocation mémoire de l'EditData
Bonjour,
j'ai essayé de créer un extension qui utilise 2 types d'editdata. une version légère (l'EDITDATA lui même) et une classe qui dérive d'EDITDATA (appelons-la EDITPLUS).
Dans la routine CreateObject, je crée une variable EDITPLUS edplus à partir de edPtr (en pensant à recopier le eHeader). Je réalloue ensuite l'editdata avec mvReAllocEditData() en lui donnant la taille de EDITPLUS. Je transtype ensuite le pointeur retourné par cette routine en EDITPLUS* et je recopie dans ce pointeur mon edplus. A ce moment, j'ai bien un editdata augmenté stocké là où il faut (d'après le debugger de VC++).
Pourtant, quand je vérifie le contenu de la mémoire lors de l'appel d'une autre routine (PutObject pour ne pas la nommer), l'espace supplémentaire propre à EDITPLUS est réinitialisé.
Si quelqu'un a une idée sur l'origine possible de ce phénomène, je suis preneur.
Re: Réallocation mémoire de l'EditData
Il faudrait voir le source code de CreateObject (et la définition des structures) parce que là c'est un peu difficile à voir...
Yves.
Re: Réallocation mémoire de l'EditData
OK.
Je crée une petite extension mettant le phénomène en avant et je la poste dans les archives.
EDIT : Voilà, j'ai posté ici une archive qui cause le problème.
La classe "étendue" ne contient d'un int maValeur en plus de l'EDITDATA normal.