您的位置:首页 > 其它

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: