Выход из неопрятной программы: MFC C++

У меня есть программа MFC C++, которая иногда вылетает при выходе из ошибки без видимой причины. Мой конкретный запрос заключается в следующем:

В моей перегрузке InitInstance() есть различные проверки, а также настройка ресурсов, таких как события и семафоры. Когда пользователь запрашивает нормальный выход, существует обработчик сообщений OnDestroy(), который закрывает все, включая освобождение ресурсов и т. Д. Этот бит работает нормально.

Проблема возникает, когда одна из проверок в InitInstance() завершается неудачно, и функция возвращает значение 0 (вызывая выход из программы). Мой вопрос таков: в этом случае автоматически вызывается OnDestroy() для очистки или нужно запустить его самостоятельно перед выходом из InitInstance?

1 ответ

Если главное окно уже существует, вы должны уничтожить его раньше, используя DestroyWindow. И нет, он не уничтожается автоматически при выходе из InitInstance с помощью FALSE. ExitInstance выполняется, но существующие окна закрываются при выходе из приложения.

В любом случае, нормальные ресурсы, такие как файлы и память, освобождаются, когда приложение существует.

Другие вопросы по тегам