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!!!
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
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 .