Будет ли GetMessage() возвращать -1 в основном цикле сообщений?C++

Программы на C++. Форум разработчиков
Anonymous
Будет ли GetMessage() возвращать -1 в основном цикле сообщений?

Сообщение Anonymous »

Согласно API GetMessage из библиотеки MSDN, он может возвращать -1 при возникновении ошибки. В документе представлен фрагмент кода распространенной ошибки, которой следует избегать:

Код: Выделить всё

while (GetMessage( lpMsg, hWnd, 0, 0)) ...
В документе говорится:


Возможность возврата значения -1
означает, что такой код может привести к фатальным
ошибкам приложения. Вместо этого используйте
такой код:

Код: Выделить всё

BOOL bRet;
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
< /code>

Мой вопрос в каждом примере кода, включая приложение по умолчанию, созданное из Visual Studio, из Microsoft, основной цикл сообщения выглядит ниже: < /p>

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Обратите внимание, что второй параметр GetMessage выше имеет значение NULL. Если приведенный выше код действителен, означает ли это, что GetMessage НИКОГДА не вернет -1, поэтому обработка возвращаемого значения -1 не требуется?

Подробнее здесь: https://stackoverflow.com/questions/528 ... ssage-loop

Вернуться в «C++»