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... ?
Je peux expliquer un peu plus le code de cette fonction si n�cessaire.
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; }
Partager