Выход из неопрятной программы: переполнение стека MFC

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

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

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

0

Решение

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]