Bonjour,

Je rencontre un bogue lors de l'utilisation de libjpeg. Tout compile parfaitement et lie correctement mais c'est un bogue lors de l'exécution d'une fonction. Cette fonction permet initialement de créer et d'écrire une image jpeg.
Le code de la fonction est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
	struct jpeg_compress_struct cinfo;
	struct jpeg_error_mgr jerr;
	JSAMPROW row_pointer[1];
 
	out_width = nc-1;
	out_height = nl-1;
 
	cinfo.err = jpeg_std_error(&jerr);
	jpeg_create_compress(&cinfo);
 
	if((jpegout = fopen((char*)((LPCSTR)szNom), "wb")) == NULL)
	{
		int a=0;
	//AfxMessageBox("Problème");
	}
	jpeg_stdio_dest(&cinfo, jpegout);
 
	cinfo.image_width = out_width;
	cinfo.image_height = out_height;
	cinfo.input_components = 3;
	cinfo.in_color_space = JCS_RGB;
	jpeg_set_defaults(&cinfo);
 
	quality = 70; 
	jpeg_set_quality(&cinfo, quality, TRUE);
	jpeg_start_compress(&cinfo, TRUE);
	row_stride = out_width * 3;
 
	while(cinfo.next_scanline < cinfo.image_height)
	{
		row_pointer[0] = &pic[cinfo.next_scanline][0];
		(void) jpeg_write_scanlines(&cinfo, row_pointer, 1);
	}
	jpeg_finish_compress(&cinfo);
	fclose(jpegout);
	jpeg_destroy_compress(&cinfo);
La partie qui plante est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
	cinfo.err = jpeg_std_error(&jerr);
	jpeg_create_compress(&cinfo);
L'erreur rencontrée est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Exception non gérée à 0x69947b00 dans D_ClientZOE.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x69947b00.
J'ai l'impression que ça plante lors de l'allocation mémoire de cinfo... donc au niveau de la seconde ligne...
Ca me parait un peu bizarre parce que ce bout de code semble être directement issu du code donnée par la bibliothèque (dans l'exemple).

Il faut que je dise que la fonction utilisée ne marche pas en visual 2008 et qu'elle marchait avant la migration du code (donc sous VC6.0) il y a environ 1 mois et que cette fonction n'a a priori pas été modifiée pour la migration..

Merci beaucoup par avance