У меня есть программа MFC C ++, которая иногда вылетает при выходе из ошибки без видимой причины. Мой конкретный запрос заключается в следующем:
В моей перегрузке InitInstance () есть различные проверки, а также настройка ресурсов, таких как события и семафоры. Когда пользователь запрашивает нормальный выход, существует обработчик сообщений OnDestroy (), который закрывает все, включая освобождение ресурсов и т. Д. Этот бит работает нормально.
Проблема возникает, когда одна из проверок в InitInstance () завершается неудачно, и функция возвращает значение 0 (вызывая выход из программы). Мой вопрос таков: в этом случае автоматически вызывается OnDestroy () для очистки или нужно запустить его самостоятельно перед выходом из InitInstance?
Если главное окно уже существует, вы должны уничтожить его раньше, используя DestroyWindow. И нет, он не уничтожается автоматически при выходе из InitInstance с помощью FALSE. ExitInstance выполняется, но существующие окна закрываются при выходе из приложения.
Во всяком случае, нормальные ресурсы, такие как файлы и память, освобождаются, когда приложение существует.
Других решений пока нет …