Должен ли я проверить вызов функции CreateWindowEx()
на предмет отказа? и что я должен делать, если он терпит неудачу, я имею в виду, если я создаю группу кнопок и один из вызовов функций не удался, должен ли я закрыть приложение вместе? Я имею в виду, что отсутствие одной кнопки может сделать приложение бесполезным.Должен ли я проверить CreateWindowEx() на отказ?
0
A
ответ
2
Я думаю, вы всегда должны проверить возвращаемое значение от CreateWindowEx()
. Если возвращаемое значение равно NULL
, тогда вы знаете, что что-то пошло не так, и вы можете принять какое-то действие в ответ на это. То, что вы делаете, когда что-то идет не так, зависит от вас, например, вы можете отобразить окно с сообщением об ошибке или вы можете записать ошибку в файл и т. Д .:
// Try to create your window
HWND hwnd = CreateWindowEx(...);
// check if the handle is valid
if(hwnd == NULL) {
// display a MessageBox() with a descriptive error message
LPVOID lpErrorMessage;
DWORD dwErrorCode = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwErrorCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpErrorMessage,
0, NULL
);
MessageBox(NULL, (LPCTSTR)lpErrorMessage, TEXT("Error"), MB_OK);
// don't forget to free the buffer allocated by FormatMessage
LocalFree(lpErrorMessage);
// terminate process
ExitProcess(dwErrorCode);
}
Смежные вопросы
- 1. Должен ли я регистрировать отказ?
- 2. Должен ли я проверить, успешно ли malloc()?
- 3. Должен ли я проверить, если document.getElementById определяется
- 4. Что я должен проверить?
- 5. Должен ли я проверить свой файл TagS Ctags на git?
- 6. Должен ли я проверить на запрос AJAX или нет
- 7. Проверить отказ putIfAbsent
- 8. Ошибка CreateWindowEx
- 9. Отказ проверить JxBrowser лицензию
- 10. Должен ли я проверить, существует ли строка перед удалением?
- 11. Должен ли я проверить, существует ли связанная сущность перед вставкой?
- 12. Должен ли я писать тесты на тесты?
- 13. Должен ли я обрабатывать отказ разработчиков с возвращением нуля или бросить пользовательский execption
- 14. Должен ли я повторно отправить двоичный файл после ответа на отказ от метаданных?
- 15. Ошибка CreateWindowEx с ERROR_CANNOT_FIND_WND_CLASS
- 16. Должен ли я проверить правильность действия, также подписано
- 17. В каком слое я должен проверить, существует ли (что-то)?
- 18. Как я могу ограничить CreateWindowEx только буквенно-цифровым вводом?
- 19. Должен ли я проверить, что методы НЕ вызывают?
- 20. Должен ли я проверить подключение к Интернету при открытии MKMapView?
- 21. Должен ли я проверить уникальное ограничение с помощью php?
- 22. Должен ли я подавлять CA1062: проверить аргументы публичных методов?
- 23. При тестировании API. Должен ли я проверить проверку методов API?
- 24. Должен ли я проверить свой общий DetailView в Django
- 25. Почему CreateWindowEx() return NULL
- 26. Должен ли я проверить в папке WEB.UI Models?
- 27. Тестирование модулей - должен ли я проверить код проверки аргумента
- 28. CreateWindowEx возвращает NULL
- 29. Должен ли я перегружать == Оператор?
- 30. Должен ли я освободить CFError?
Да, вы должны проверить, получите действительный дескриптор, если функция возвращает NULL, что-то пошло не так, и вы можете использовать 'GetLastError()' для получения кода ошибки. Какое действие вы принимаете, зависит от того, почему функция не работает. – Cyclonecode
Что делать, если я не получаю действительный дескриптор (что означает, что я не создал кнопку), должен ли я отображать сообщение об ошибке и закрывать приложение? –
* отсутствие одной кнопки может сделать приложение бесполезным * есть ваш ответ -> сообщить пользователю с помощью MessageBox, что создание кнопки не удалось и закрыть приложение. Вы можете написать небольшой журнал (как файл .txt), по крайней мере, с соответствующей информацией. Таким образом, пользователь может отправить этот «отчет об ошибке», и вы будете иметь что-то в качестве руководства при отладке ... – AlwaysLearningNewStuff