#include "CasicBioRecWin.h" #include <QApplication> #include <Windows.h> //闪退调试 #include <DbgHelp.h> //闪退调试 //INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 //程式异常捕获 LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException) { //创建 Dump 文件 HANDLE hDumpFile = CreateFile(L"d://crash.dmp", 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; } int main(int argc, char *argv[]) { qputenv("QT_IM_MODULE", QByteArray("Qt5Input")); QApplication a(argc, argv); //设置异常拦截 SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);//注冊异常捕获函数 // Load conf setting //el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); //el::Loggers::reconfigureAllLoggers(conf); // Fatal level do not stop program //el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); // Init Verbose level //el::Loggers::setVerboseLevel(9); CasicBioRecWin w; w.show(); return a.exec(); }