windows下如何做软件崩溃前提示界面
2015-10-22 09:29
288 查看
windows API有一个函数SetUnhandledExceptionFilter可以在程序崩溃之前捕获崩溃事件,它接受一个函数指针参数,我们可以利用它进行诸如崩溃前数据保存、记录日志,或者是重启等。
在系统初始化后,注册崩溃捕获函数
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);//注册异常捕获函数
异常捕获函数的定义为:
LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
{
//To Do
//What you want
.......
//创建 Dump 文件
HANDLE hDumpFile = CreateFile(QTime::currentTime().toString("HH时mm分ss秒zzz.dmp").utf16(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if( hDumpFile != INVALID_HANDLE_VALUE)
{
//Dump信息
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pException;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
//写入Dump文件内容
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
}
return EXCEPTION_EXECUTE_HANDLER;
}
在系统初始化后,注册崩溃捕获函数
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);//注册异常捕获函数
异常捕获函数的定义为:
LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
{
//To Do
//What you want
.......
//创建 Dump 文件
HANDLE hDumpFile = CreateFile(QTime::currentTime().toString("HH时mm分ss秒zzz.dmp").utf16(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if( hDumpFile != INVALID_HANDLE_VALUE)
{
//Dump信息
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pException;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
//写入Dump文件内容
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
}
return EXCEPTION_EXECUTE_HANDLER;
}
相关文章推荐
- 【Java基础】Java中的多态
- 为什么要有handler机制?handler机制的原理
- 【PAT】1082. Read Number in Chinese (25)
- RequireJS知识总结
- android sdk国内镜像
- Xcode7企业版打包
- ML基石_14_Regularization
- Quartz2D使用之基本图形绘制(一)
- 3.21、BI之SSIS之数据流转换(渐变维度)
- 3.20、BI之SSIS之数据流转换(合并连接)
- Linux系统引导过程(BIOS和Bootloader部分)
- Spring Security3 - MVC 整合教程 (初识Spring Security3)
- Jetson TK1 刷机安装Ubuntu系统与Mini PCI-e无线网卡
- LeetCode First Bad Version
- jquery input file show image preview 预览图片
- cookie分析
- js检测访问设备的类型
- View层基础动画
- UITableView分割条闪动问题
- 3.19、BI之SSIS之数据流转换(合并)