Sad*_*ido 8 c++ windows stack destructor exit
我在main函数的堆栈中有一些对象:
int main(...)
{
CFoo foo;
CBar bar;
}
Run Code Online (Sandbox Code Playgroud)
另外,我有一个函数,可以跟踪我的应用程序中的错误:
void Err(std::string msg)
{
SomehowLogErrorMessage(msg);
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
当我必须报告致命错误时,Err函数绝对有用.我只是记录错误并终止应用程序 - 在发生此类错误后无法恢复.但是,以"exit()"结尾不会调用foo和bar析构函数 - 这是我实际预期的行为(但是错误)."abort()"也无济于事.另外,我不能在main()中使用异常来捕获它们.有没有其他方法来实现Err函数,它终止应用程序并正确清理堆栈对象?或者我应该以某种方式重新设计我的错误处理?
谢谢!
ps顺便说一句,我不能将WM_QUIT消息发送到我的主窗口?我对WinAPI并不擅长,但我的应用程序是纯Win32,而我的Err()函数可以获得我的主窗口的句柄.它会起作用吗?
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |