怎么让window程序崩溃后不d出崩溃提示框

怎么让window程序崩溃后不d出崩溃提示框,第1张

如何让程序崩溃时不d出错误对话框

很多程序崩溃时,会d出如下类似的错误对话框:

如何让程序优雅地崩溃?优雅的崩溃是指:在程序崩溃时不d出如上面的对话框。

甚雹誉至更优雅的方法是:在崩溃之前时加入自己的对话框,用于用户向程序开发方报告这一崩溃现象。

今天客户反映我们的程序崩溃后就起不来了,其实我们为了方便无人化管理,做了一个守护进程。如果程序异常退出就会重启那个程序,这在linux下没问题,程序崩溃了就直接退出返回非零值,但是window就bug了,搞不好就给你d出个错误对话框,你不点掉其实程序就没退出,守护进程就不知道这个程序是否崩溃,于谨正是这个程序就永远死在那个窗口上了。现在这不仅碍眼,还碍事!于是着手摆平之。

先介绍一下

EXCEPTION_EXECUTE_HANDLER(1)         表示下面执行__except块内及其后面的代码

EXCEPTION_CONTINUE_EXECUTION(-1)  表示回到抛出异常处继续向下执行

EXCEPTION_CONTINUE_SEARCH(0)         表示查祥肆悔找下一个异常处理例程入口

#include "stdafx.h"

#include   <windows.h>

#include <iostream>

using namespace std

long   __stdcall   callback(_EXCEPTION_POINTERS*   excp)

{

wcout<<"sdfds\n"

return   EXCEPTION_EXECUTE_HANDLER

}

int _tmain(int argc, _TCHAR* argv[])

{

SetUnhandledExceptionFilter(callback)  // 加入这句后,不会d出错误对话框了,程序崩溃悄无声息地退出

char *p = 0

*p = 'p'  // 程序走到此处会崩溃

return 0

}

不可能,因为这个对话框是内嵌在 VC Runtime Library 里面的;

你神顷的代码既然调用了 CRT 的函数,就必须符合 CRT 的技术标准;

只要有错,就必定会d出这个对话框;

唯一的方法,就是修改你的代码,让你游蚂陆的代码没有错误,那就不会d物高这个东西了;


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12474186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存