#include "mainwindow.h" #include #include #include #ifdef _MSC_VER //MSVC编译器 #include #include #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif LONG WINAPI handleException(_EXCEPTION_POINTERS *excep) { QString errCode = QString::number(excep->ExceptionRecord->ExceptionCode, 16); QString errAddr = QString::number((uint)excep->ExceptionRecord->ExceptionAddress, 16); HANDLE hDumpFile = CreateFile(L"c:/ledok-crash.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hDumpFile == INVALID_HANDLE_VALUE) { qDebug()<<"handleException hDumpFile INVALID"<<"ExceptionCode"<程序出错! (code: "+errCode+". addr: "+errAddr+")
请将C盘下的 ledok-crash.dmp 文件发送到 gangphon@qq.com 邮箱, 研发人员会尽快处理."); return EXCEPTION_EXECUTE_HANDLER; // EXCEPTION_EXECUTE_HANDLER 已处理异常, 让 windows 正常结束 // EXCEPTION_CONTINUE_SEARCH 未处理异常, 让 windows 弹出错误框并结束 (Qt会卡死一段时间) // EXCEPTION_CONTINUE_EXECUTION 已修复错误, 让 windows 从异常发生处继续执行 } #endif QString fileHome; int main(int argc, char *argv[]) { QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); QApplication::setOrganizationName("Shanghai Xixun Electronic Technology Co., Ltd."); QApplication::setOrganizationDomain("www.ledok.cn"); QApplication::setApplicationName("LedOK Express"); QApplication a(argc, argv); fileHome = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); QFont font; font.setFamilies(QStringList{"Arial","Microsoft YaHei UI"}); font.setPixelSize(14); a.setFont(font); QSplashScreen splash(QPixmap(":/res/splash.png")); splash.show(); splash.showMessage(QObject::tr("Setting up the LedOK Express..."), Qt::AlignRight | Qt::AlignTop, Qt::white); #ifdef _MSC_VER SetUnhandledExceptionFilter(handleException); #endif MainWindow w; w.show(); splash.finish(&w); return a.exec(); }