Violation d'accès lors de la lecture de l'emplacement....

Oodini Messages postés 16 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 4 décembre 2022 - 25 sept. 2007 à 14:48
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 25 sept. 2007 à 16:13
Bonjour,


J'obtiens l'erreur

Exception de première chance à 0x0cdcd5e8 dans maya.exe :
0xC0000005: Violation d'accès lors de l'écriture à l'emplacement
0x0e8cbddc.


Cela est provoqué par l'instruction :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
<!--[if !IE]><--><!----><!--[endif]--><!--[if IE]>
<![endif]-->static_cast(mCamera)->getCameraFunction();

<!-- END TEMPLATE: bbcode_code -->Sachant que :


- mCamera est de type AmNode*

- AmCamera dérive de AmNode

- getCameraFunction() est définie dans AmCamera


Si je me contente de mettre
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
<!--[if !IE]><--><!----><!--[endif]--><!--[if IE]>
<![endif]-->static_cast(mCamera)->getBoolean();

<!-- END TEMPLATE: bbcode_code -->pas de problèmes.

getBoolean() est une fonction bidon utilisée en vue de la résolution de ce problème, et qui retourne true.



getCameraFunction() renvoit la valeur d'une variable membre.
Lorsque je passe dedans, je constate que sa valeur n'est pas nulle.

Le message d'erreur n'apapraît que lorsque je sors de ma DLL.


Merci !

3 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
25 sept. 2007 à 15:11
Tu es sûr que mCamera pointe (à l'exécution) sur une instance de classe AmCamera?
Autre chose ta fonction getBoolean() tu l'as déclarée dans AmNode ou AmCamera?
0
Oodini Messages postés 16 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 4 décembre 2022
25 sept. 2007 à 15:47
1ère question :

Je rentre bien dans la fonction getCameraFunction(), donc oui.
En outre, l'objet qui est associé au return a la bonne valeur.

2ème question :
getBoolean() a été déclaré dans AmCamera, à côté de getCameraFunction().

Je vais cela dit apporter quelques précisions :

Je travaille avec une API dont les classes contiennent soit des données, soit des fonctions, mais jamais les deux.
Pour agir sur les données d'une instance de classe de donnée, je dois créer une instance de la classe de fonciton correspondante.
Elle sont ensuite associées, et je en travaille qu'avec la classe de fonctions.
C'est semble-t-il une méthode de conception.

Ce que je cherche à récupérer via getCameraFunction() est une instance d'une classe de fonctions.
J'ai constaté qu'il est impossible de récupérer l'adresse de l'instance de la classe de fonction : l'opérateur d'adressage (&) y est surchargé et déclaré privé.
Pensez-vous que cela pourrait-être à l'origine du problème, l'appelant ne récupérant pas la valeur supposée être retournée ?

Si vous connaissez cette méthode de conception, prote-t-elle un nom ?
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
25 sept. 2007 à 16:13
Faudrait mettre un peu du code (notamment getCameraFunction et ton opérateur&) parce que là...
0
Rejoignez-nous