猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
关键是第一个,如何捕获?
SDK的程序在WINMAIN返回之前写段代码,来捕获程序异常退出的原因,并写入TXT文件里,这样的代码该怎么写?
慕森王
浏览 210
回答 2
2回答
长风秋雁
程序运行过程中产生的异常一般是由程序自身处理程序自身不处理 且调试器也不处理的操作系统将调用默认的全局异常处理函数来处理异常这个全局函数是可以更改的更改办法是调用函数:SetUnhandledExceptionFilter
0
0
0
幕布斯7119047
这个里面涉及的问题可能比较多? 如果你使用SEH(结构化异常处理)那么你可以捕获绝大多数的异常,但是在结构化异常处理是不能和确定性资源清理一起使用的使用的,简单的说你不能像这样去定义一个对象 A a; 使用关键字 __try __except __finally 你可能需要下面两个函数 GetExceptionCode GetExceptionInformation 这是2个例子 DWORD FilterFunction() { printf("1 "); // printed first return EXCEPTION_EXECUTE_HANDLER; } VOID main(VOID) { __try { __try { RaiseException(1, // exception code 0, // continuable exception 0, NULL); // no arguments } __finally { printf("2 "); // this is printed second } } __except ( FilterFunction() ) { printf("3\n"); // this is printed last } } BOOL SafeDiv(INT32 dividend, INT32 divisor, INT32 *pResult) { __try { *pResult = dividend / divisor; } __except(GetExceptionCode() == EXCEPTION_INT_DIVIDE_BY_ZERO ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) { return FALSE; } return TRUE; } 最后再提醒你,__try只能和__except或者(注意这里是“或者”)__finally连用,不能__try{...}__except(){...}__finally{...}这样使用
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
设计模式
关于qt编程问题?
1 回答
请问视觉设计师如何提升自身的能力?
1 回答
操作系统
windows桌面的系统图标是程序吗?和普通程序有什么不同?
1 回答
关于操作系统安装不上 的问题?
3 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续