Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3503 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Access Violation en écriture

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Access Violation en écriture

n°2045496
Terminapor
I'll see you rise.
Posté le 01-01-2011 à 19:43:34  profilanswer
 

Bonsoir ! :D
 
Bon, j'en suis à la fin avec ma DLL, j'ai juste un ptit problème à cause d'une ligne :  
 

Code :
  1. void array_load (unsigned int n, vector<animdata> * narray, unsigned int framecount)
  2. {
  3.     (*garray)[n].anim =*narray; // celle là !
  4.     (*garray)[n].framecount = framecount;
  5. }


 
Voilà, cette ligne est sensé stocké un vector de structure animdata dans le membre "anim", que je récupère plus tard via cette fonction :
 

Code :
  1. vector <animdata> & get_vector(unsigned int id)
  2. {
  3.     return garray->at(id).anim;     
  4. }


 
Seulement, c'est que quand je laisse cette ligne "(*garray)[n].anim =*narray;" ben j'me choppe un méchant "Access Violation at address 6AF3EAD6 in module "GMDLL.dll". Write of address 00030002." lorsque je charge une animation :(
 
Voilà, si quelqu'un pouvait m'aiguiller :D
 
Merci à vous et bonne année :D  :jap:


---------------
Perhaps you don't deserve to breathe
mood
Publicité
Posté le 01-01-2011 à 19:43:34  profilanswer
 

n°2045497
xilebo
noone
Posté le 01-01-2011 à 19:58:16  profilanswer
 

tu as probablement un écrasement mémoire. n est-il valide et inférieur à la taille de ton array ? garray est-il valide aussi ? Ton écrasement mémoire peut se trouver à peu près n'importe où, c'est une chose assez difficile à debugger surtout si le code est gros.

n°2045498
Terminapor
I'll see you rise.
Posté le 01-01-2011 à 20:02:06  profilanswer
 

xilebo a écrit :

tu as probablement un écrasement mémoire. n est-il valide et inférieur à la taille de ton array ? garray est-il valide aussi ? Ton écrasement mémoire peut se trouver à peu près n'importe où, c'est une chose assez difficile à debugger surtout si le code est gros.


Vi, garray est en global, ensuite y'a une fonction d'initialisation "garray = new vector<animstruct>;" qui est mise dans la fonction main, aussi il est automatiquement resizé lorsqu'un nouvel array doit être chargé


Message édité par Terminapor le 01-01-2011 à 20:02:36

---------------
Perhaps you don't deserve to breathe
n°2045499
xilebo
noone
Posté le 01-01-2011 à 20:10:13  profilanswer
 

vérifie avec un debugger la valeur de l'adresse "(*garray)[n].anim" à un moment où tu es sur qu'elle est valide, ensuite , au moment de l'affectation, et enfin au moment du plantage ( en debug). Si l'adresse a changé c'est que tu as un écrasement mémoire qui t'invalide cette adresse.

n°2045503
Joel F
Real men use unique_ptr
Posté le 01-01-2011 à 21:14:11  profilanswer
 

global dans un DLL == drame en perspective

n°2045509
Terminapor
I'll see you rise.
Posté le 01-01-2011 à 21:32:31  profilanswer
 

Joel F a écrit :

global dans un DLL == drame en perspective


Pas forcément, à la base j'me servais d'une variable global pour remplir mon tableau, et ça marchait niquel (mais qu'une seule animation quoi :( )


---------------
Perhaps you don't deserve to breathe
n°2045517
Terminapor
I'll see you rise.
Posté le 01-01-2011 à 22:26:06  profilanswer
 

Aah, ben j'ai finalement résolu mon problème en virant la structure d'animations de garray (qui servait à rien vu qu'elle stockait le nombre de frame, et c'est le nombre de ligne des petits tableaux) et en faisant un vector < vector <animdata > > *garray :)
 
Merci d'votre aide ! :)


---------------
Perhaps you don't deserve to breathe

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Access Violation en écriture

 

Sujets relatifs
[Access] Accéder aux champs d'un enregistrement en mode macroErreur [1045] Access denied ?
Access vs MySQL pour de très grosses basesMonitoring d'applications Excel et Access
[VBS] Erreur WScript.CreateObject avec runtime access 2003barre de défilement d'un mémo (Access 2003)
LIKE dans une Requête paramétrée ACCESSForbidden you don"t have permission to access
Access VBA cellule vide avec IF et Then (marche pas ?)SAX pour Java - écriture d'un fichier HTML
Plus de sujets relatifs à : Access Violation en écriture


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR