Bonjour,
J'ai fais un serveur d'image que l'on interroge par TCP pour r�cup�rer l'image.
Le client envoie une requ�te, le serveur g�n�re l'image et l'envoie au client.
Pour mes tests, je stresse le serveur en envoyant des requ�tes toutes les 200 ms, sachant que le serveur n'a pas le temps de g�n�rer l'image en 200 ms.
J'ai une pile d'attente qui g�re ce point.
J'en viens � mon probl�me.
Pour g�n�rer l'image, j'utilise un double buffer, pour �viter le flicking.
Cette fonction permet de remettre un fond bleu � mon image � chaque fois.
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 BOOL CMyView::OnEraseBkgnd(CDC* pDC) { CDC dcMem; CBitmap *pOldBitmap; dcMem.CreateCompatibleDC(pDC); pOldBitmap = dcMem.SelectObject(&m_bMap); // Set brush to desired background color. CBrush backBrush(RGB(169, 230, 252)); // Save old brush. CBrush* pOldBrush; pOldBrush = dcMem.SelectObject(&backBrush); CRect rect; dcMem.GetClipBox(&rect); // Erase the area needed. dcMem.PatBlt(rect.left, rect.top, rect.Width(),rect.Height(), PATCOPY); dcMem.SelectObject(pOldBrush); dcMem.SelectObject(pOldBitmap); dcMem.DeleteDC(); return TRUE; //return CWnd::OnEraseBkgnd(pDC); }
Je lance mon application avec 2 clients et un serveur, et au bout d'un moment (tr�s variable),
j'ai une erreur sur le CreateCompatibleDC qui me met le dcMem � NULL.
J'ai aussi test� le bool�en de retour qui est � 0 (donc erreur), mais �tonnement quand je regarde la valeur du GetLastError, j'ai 0 ce qui signifie, pas d'erreur !!!!
Je ne comprends plus rien.
Merci de votre aide.
Partager