返回信息流现在有个程序,
需要在软件关闭的时候,调用一个close函数,这个函数主要是关闭和这个软件相关的硬件啊其他设备啊之类的。
如果正常退出的时候,我们可以监听MFC窗口右上角的“X”按钮,在onClose函数里写这个逻辑
```C++
afx_msg void OnClose();
```
但是如果程序异常退出了怎么办?
或者VS里debug时,点击“停止”怎么办?
如何捕获这个异常啊?
小白求解答~~
这是一条镜像帖。来源:北邮人论坛 / cpp / #96260同步于 2017/9/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【MFC】如何捕获异常退出的情况
arence
2017/9/4镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
最好的方式是避免发生异常退出,一般常见的异常退出无非就是访问了空指针,或者是取数组之类的值的时候下标超出有效范围,把这些地方的处理一下,例如你的指针p在第一次使用前,最好用if(!p)去处理一下,数组下标也判断一下范围是否合理
总:http://blog.csdn.net/kibaamor/article/details/12186007
异常处理例程:https://msdn.microsoft.com/zh-cn/library/6d85y967.aspx
希望答主解决后分享一下具体过程
[ema1]
商量之后我们决定:不管了!
[ema12][ema12][ema12][ema12][ema12]
【 在 bond1993 的大作中提到: 】
: 总:http://blog.csdn.net/kibaamor/article/details/12186007
: 异常处理例程:https://msdn.microsoft.com/zh-cn/library/6d85y967.aspx
: 希望答主解决后分享一下具体过程
弄个watchdog,让你的程序每一段时间比如每1秒“喂一下狗”(就是给狗发送一条消息)。如果狗两秒钟之内没有被喂,就把你的程序kill了,然后关闭所有相关的硬件。
嗯嗯 之前好像听说过这个watchdog的原理。。 多谢暖神~~~
【 在 nuanyangyang 的大作中提到: 】
: 弄个watchdog,让你的程序每一段时间比如每1秒“喂一下狗”(就是给狗发送一条消息)。如果狗两秒钟之内没有被喂,就把你的程序kill了,然后关闭所有相关的硬件。
MFC的话,有个函数叫SetUnhandledExceptionFilter的,可以捕获程序的异常崩溃,在崩溃时转到指定函数指针内,可以百度下具体用法。
嗯嗯 我也查到了这个函数
试了几下没成功~~ 我再看看~ 谢谢!
【 在 dujiangtao 的大作中提到: 】
: MFC的话,有个函数叫SetUnhandledExceptionFilter的,可以捕获程序的异常崩溃,在崩溃时转到指定函数指针内,可以百度下具体用法。
内存操作异常SetUnhandledExceptionFilter无法捕捉,先确定下发生异常的种类。
窗体的致命事件可以收听窗体的WM_DESTROY事件。
【 在 arence 的大作中提到: 】
: 嗯嗯 我也查到了这个函数
: 试了几下没成功~~ 我再看看~ 谢谢!
: