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.

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);
}
Cette fonction permet de remettre un fond bleu � mon image � chaque fois.

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.