violation d'acces à la lecture

violation d'acces à la lecture - C - Programmation

Marsh Posté le 15-05-2006 à 17:46:51    

:pt1cable: bonjour tous ,
ca fait une semaine non stop ,que je galere sur mon programme .il se compile sans erreur ,l'interface se lance mais au moment d'appuyer sur "tri" pour faire appel à une fonction qui fait du traitement d'image sur bmp ,il me dit "exeption non gérée : violation d'accés à la lecture a l'emplacement 0x0000.."
 
mon prelmier programme decoupe 1 image bitmap en imagettes (ça fonctionnait en mode console )
mon 2eme va chercher tous les fichiers bitmap dans un folder et il marche .
Le tout est écrit sous Visual C++ en C avc des points cpp.
le but étai d'appeler mes fonctions de decoupe (main transformé pour l'occasion ) et je les traitent à la chaine avc iCount++....
 
je sui plu quoi faire !voila mon winapi main ou j'appelle la fonction de traitement d'image:
 
 
  while(FindNextFile(haResult,&w32fd)!=0){
               GetWindowText(hwPathSource,szTriFile,MAX_PATH);
               GetWindowText(hwPathDest,szPathDest,MAX_PATH);
 
      SendMessage(hwProgressBar,PBM_SETPOS,(long)100,0);
               
               lstrcat(szPathDest,"\\" );
               lstrcat(szPathDest,w32fd.cFileName);
               lstrcat(szTriFile,"\\" );
               lstrcat(szTriFile,w32fd.cFileName);
               
               if(boChekDep){
            MoveFile(szTriFile,szPathDest);
               }
                         
               if(boChekCopy){    // c'est ICI!!! :pt1cable:  
 
                        t_img_cut ic;
 
 init_ic(av, i&c);
 process_ic(&ic);
 close_ic(&ic);
 
 //printf("fini\n" );
 while (500)
  ;  
                            //CopyFile(szTriFile,szPathDest,TRUE);
               }
               if(boChekDel){
                            DeleteFile(szTriFile);
               }
               
      iCount++;
 
      sprintf(szBuffer,"%d fichier(s) traité(s)",iCount);
      SetWindowText(hwStatusBar,szBuffer);
 
      SendMessage(hwProgressBar,PBM_SETPOS,(long)0,0);
               SetWindowText(hwView,szTriFile);
      SendMessage(hwProgressBar,PBM_SETPOS,(long)100,0);
           }
 
           if(boChekCopy)SetWindowText(hwView," Fichier(s) copié(s) avec succčs" );
           if(boChekDel)SetWindowText(hwView," Fichier(s) supprimé(s) avec succčs" );
           if(boChekDep)SetWindowText(hwView," Fichier(s) déplacé(s) avec succčs" );
     }
     
}
 
et voila ou le debug me renvoie au moment du message d'erreur:
 
 void init_ic(char **av,t_img_cut *ic)
{
 
     
 
     
 ic->av_zero=av[0];//c'est ICI  :pt1cable:  
   
 ic->image_buffer = load_bitmap_file(av[1], &(ic->image_size.x), &(ic->image_size.y), &(ic->image_info_header));
 
if (av[1] == NULL)
 {
  //fprintf(stderr, "I must have a 24bit bmp as parameter\n" );
  exit(0);
 }// changement c'etai av[1]  
 
 ic->base_file = less_extension(av[1]);
 if (ic->base_file == NULL)
 {
  //fprintf(stderr, "error in filename of %s\n", av[1]);
  exit(0);
 }
 ic->image_buffer_len = ic->image_size.x * ic->image_size.y * 3;
 //printf("width tile size :\n" );
 //scanf("%d", &(ic->tile_size.x));
 //printf("height tile size :\n" );
 //scanf("%d", &(ic->tile_size.y));
 
 //ic->tile_size.x=&(ic->image_size.x*1/5);// on assigne une taille fixe pour le moment  
    //ic->tile_size.y=&(ic->image_size.y*1/4);
 ic->tile_size.x=12;//changement
 ic->tile_size.y=15;//changement  
 
 j'espere que quelqu'un pourra sauver mes nerfs.
a biento .
merci à tous d'avance .

Reply

Marsh Posté le 15-05-2006 à 17:46:51   

Reply

Marsh Posté le 15-05-2006 à 19:50:19    

balise code S.V.P


Message édité par Joel F le 15-05-2006 à 19:50:31
Reply

Marsh Posté le 15-05-2006 à 20:46:12    

Question bordélique qui laisse présager de méthodes d'isolations de code non moins bordéliques. [:dao]
 
A tous les coups, "ic" n'est pas alloué en mémoire.
Mais c'est du pifomètre, un coup de boule de cristal, parce qu'on n'a ni la définition de ic, ni celle d'av, le code donné n'est pas synthétique (pas d'isolation de l'erreur, code commenté qui pollue, ...), etc.
 
C'est pratiquement impossible de t'aider autrement qu'en te disant de nettoyer et de mettre au propre ton code.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed