Windows MFC C++ を使用します。CWinApp 派生クラスでユーザー定義メソッドを呼び出すサード パーティ アプリがあります。このメソッドは、InitInstance() の後に呼び出されます。このメソッドでエラーが発生し、例外がスローされて try/catch ブロックでキャッチされた場合、catch ブロックからアプリケーションを終了したいと考えています。やめる標準的で正しい方法は何ですか?
アップデート:
Serge 私は、InitInstance() で false を返すことがアプリケーションを終了する正しい方法であると信じています。ただし、CDialog 派生クラスの OnInitDialog() ハンドラーを終了したいとします。これを行う正しい方法は何ですか。
更新 2
私にとっては、非モーダル CDialog 派生クラスから PostMessage(WM_CLOSE) を呼び出すことが最善の方法であることがわかりました。私が試した他のすべての終了方法は、状況によっては何らかの例外またはその他を発生させます。
これが私がそれをどのように使用するかの例です:
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;
}