Bonjour � tous,

Dans une appli MFC de browser d'images, j'ai un plantage en release et pas en debug. Pour localiser le bug, j'ai utilis� des Beep() dans mon code et l�, stupeur, le plantage dispara�t ! Il y a en particulier une ligne o� un unique Beep() avec de mauvais param�tres (voir code ci-dessous) �vite le crash.
J'ai essay� de remplacer le Beep() par un Sleep(), pensant � un probl�me de synchronisation mais le plantage r�appara�t.

Quelqu'un a-t-il d�j� eu ce probl�me ? D'o� peut venir ce comportement ? Probl�me de m�moire, synchronisation, autre... ?

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
long CImageBrowser::DisplayImagesRange(long StartIndex, long StopIndex)
{
	long returnValue = 0;
	long range = StopIndex - StartIndex;
 
	if(range < 0 || StartIndex < 0 || StopIndex < 0 )
		return -1;
	if(StartIndex >= m_PathesArray.GetSize())
	{
		FreeDisplay();
	//Update only the images side
		InvalidateRect(m_rBrowserRect);
		SetScrollInfo(0);
 
		return -1;
	}
	if(range > m_Sizes.m_Nb_Visible_Vignettes)
		returnValue = ResizeRange(StartIndex,StopIndex);
	if(StopIndex > m_PathesArray.GetSize())
		returnValue = ResizeRange(StartIndex,StopIndex);
 
	if(returnValue < 0)
		return returnValue;
 
	FreeDisplay();
	SetScrollInfo(0);
 
////////////
 
	Beep(0,0);  //normalement, le premier paramètre (fréquence)
				//doit être entre 37 et 32767
////////////
 
//load images
	for(int i=StartIndex;i<StopIndex;i++)
		DisplayDefect(m_PathesArray.GetAt(i),i-StartIndex);
 
	//Update only the images side
	InvalidateRect(m_rBrowserRect);
 
	m_DisplayedNumber = m_Sizes.m_Nb_Visible_Vignettes;
 
	if(m_FirstImageIndex > m_DefectNumber - m_Sizes.m_Nb_Visible_Vignettes)
		m_DisplayedNumber = m_DefectNumber - m_FirstImageIndex;
 
	SetSelection(0,0);
 
	return 0;
}
Je peux expliquer un peu plus le code de cette fonction si n�cessaire.