|
1.¿ä¾à MFC ¿¡¼ Á¦°øÇÏ´Â ¿¡·¯ ¹æÁö¿ë ¸ÅÅ©·ÎÀÎ _ASSERTE °¡ È£ÃâµÇ¸é MFC ´Â Last Error ¸¦ 0 À» ¼ÂÆÃÇÏ°Ô µÇ¾î GetLastError() °¡ ¹«¿ëÁö¹°ÀÌ µÇ¾î ¹ö¸³´Ï´Ù. 2.º»¹® ´Ù¸¥ À©µµ¿ì¿¡ ¸Þ¼¼Áö¸¦ º¸³»±â À§Çؼ SendMessageTimeout ¸¦ »ç¿ëÇßÀ»¶§ return °ªÀÌ 0 À̰í GetLastError() °ªÀÌ 0 À̸é À§ÀÇ ÇÔ¼ö°¡ Time Out¿¡ °É·Á¼ ½ÇÆÐ¸¦ ÇÑ °æ¿ìÀÔ´Ï´Ù. * MSDN ¿¡ ´ÙÀ½°ú °°ÀÌ ÀûÇôÀÖ½À´Ï´Ù. * If the function fails or time out, the return value is zero. To get extended error information, call GetLastError. If GetLastError returns zero, then the function timed out. ±×·±µ¥ À§ÀÇ ÇÔ¼öÀÇ ¸®ÅϰªÀ» üũÇϱâ À§Çؼ _ASSERTE ¸¦ »ç¿ëÇß´Ù°í Ä¡¸é ÇÁ·Î±×·¡¸ÓÀÇ Àǵµ¿Í´Â ´Þ¸®, À§ÀÇ ÇÔ¼ö°¡ ´Ù¸¥ ÀÌÀ¯·Î ½ÇÆÐ¸¦ Çß´Ù°í Ä¡´õ¶ó°í ¾ðÁ¦³ª time out ¿¡ ÀÇÇØ¼ ÇÔ¼ö°¡ ½ÇÆÐÇѰͰú °°°Ô µË´Ï´Ù. ÀÌ·± ¹®Á¦´Â ºñ´Ü À§ÀÇ ÇÔ¼ö¿¡¼ »Ó¸¸¾Æ´Ï¶ó, GetLastError() ÇÔ¼ö¸¦ ÀûÀýÈ÷ »ç¿ëÇØ¾ß ÇÏ´Â ÇÔ¼öÀÇ °æ¿ì¿¡ ÀáÀçÀûÀÎ ¹ö±×¸¦ °¡Áú ¼ö ÀÖ°Ô µÇ¾î ÀÖÁÒ. »ç¿ëÇÒ ¶§ Á¶½ÉÇØ¾ß °Ú½À´Ï´Ù. :) 3.¿¹Á¦
// ¾Æ·¡ÀÇ ¿¹Á¦´Â SendMessageTimeout ÀÌ ½ÇÆÐÇÒ °æ¿ì
// ¾ðÁ¦³ª ERR_UI_IS_HUNG ¸¦ ¸®ÅÏÇÏ°Ô µË´Ï´Ù.
LRESULT lRes = SendMessageTimeout(hUIWnd, WM_USER_NEEDNEXTPACKET,
0, (LPARAM)pDataPacket, SMTO_BLOCK, 10000, &pdwRes);
_ASSERTE( FALSE != lRes );
if ( 0 == lRes )
{
// ¸¶Áö¸· Error °ªÀ» ±¸ÇÕ´Ï´Ù.
DWORD dwLastErr = GetLastError();
if ( 0 == dwLastErr )
// time out ¿¡·¯ÀÔ´Ï´Ù.
return ( ERR_UI_IS_HUNG );
return ( ERR_INVALID_DATA );
}
return ( ERR_SUCCESS );
- 2001.08.13 Smile Seo - |