【发布时间】:2011-11-25 14:45:16
【问题描述】:
使用 windows MFC C++。我有一个第三方应用程序在我的 CWinApp 派生类中调用用户定义的方法。此方法在 InitInstance() 之后调用。如果此方法中存在错误,例如抛出异常并在 try/catch 块中捕获,我想从 catch 块中退出应用程序。什么是规范且正确的戒烟方式?
更新:
Serge 我认为在 InitInstance() 中返回 false 是正确的退出应用程序的方法。但是,现在假设我想从 CDialog 派生类的 OnInitDialog() 处理程序中退出,那么正确的方法是什么。
更新 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;
}
【问题讨论】:
-
啊!这是一个基于对话框的应用程序。请参阅我编辑的答案。