Будет ли 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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