Использование окон MFC С++. У меня есть стороннее приложение, которое вызывает пользовательский метод в моем производном классе CWinApp. Этот метод вызывается после InitInstance(). Если в этом методе есть ошибка, так что исключение бросается и попадает в блок try/catch, я хотел бы выйти из приложения из блока catch. Каков канонический и правильный способ выхода?
UPDATE:
Серж Я считаю правильным, что в InitInstance() возвращение false - это правильный способ выйти из приложения. Однако теперь предположим, что я хочу выйти из обработчика OnInitDialog(), производного от класса CDialog, каким правильным способом это сделать.
ОБНОВЛЕНИЕ 2
Для меня я нашел вызов PostMessage (WM_CLOSE) наилучшим способом из моего немодального класса, созданного с помощью CDialog. Все другие методы прекращения, которые я попытался, в некоторых случаях могут вызвать какое-то исключение.
Вот пример того, как я его использую:
BOOL SomeDialog::OnInitDialog()
{
CDialog::OnInitDialog();
::OleInitialize(nullptr);
try
{
// ...load settings file here
}
catch(...)
{
PostMessage(WM_CLOSE);
return TRUE;
}
// return TRUE unless you set the focus to a control
return TRUE;
}