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

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

Сообщение Anonymous »

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

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

while (GetMessage( lpMsg, hWnd, 0, 0)) ...
< /code>

документ говорит: < /p>


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

BOOL bRet;
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Мой вопрос: в каждом примере кода, включая приложение по умолчанию, созданное в Visual Studio, от Microsoft, основной цикл сообщений выглядит следующим образом:

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

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

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

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