| | |
| | | #include "Servo.h" |
| | | #include "ServoDlg.h" |
| | | #include "ServoGraph.h" |
| | | #include "AlarmManager.h" |
| | | #include "SECSConfigManager.h" |
| | | |
| | | // 声明全局变量,用于管理 GDI+ 初始化 |
| | | ULONG_PTR g_diplusToken; |
| | | GdiplusStartupInput g_diplusStartupInput; |
| | | |
| | | #ifdef _DEBUG |
| | | #define new DEBUG_NEW |
| | |
| | | HSMS_Initialize(); |
| | | |
| | | |
| | | // 初始化 GDI+ |
| | | InitGDIPlus(); |
| | | |
| | | |
| | | // 初始化报警管理器 |
| | | try { |
| | | if (!AlarmManager::getInstance().initAlarmTable()) { |
| | | AfxMessageBox("初始化报警管理器失败!"); |
| | | return FALSE; |
| | | } |
| | | } |
| | | catch (const std::exception& ex) { |
| | | CString errorMsg; |
| | | errorMsg.Format(_T("初始化报警管理器失败:%s"), CString(ex.what())); |
| | | AfxMessageBox(errorMsg, MB_ICONERROR); |
| | | return FALSE; |
| | | } |
| | | |
| | | |
| | | // 初始化SECS设置管理库 |
| | | try { |
| | | if (!SECSConfigManager::getInstance().initSECSSetting()) { |
| | | AfxMessageBox("初始化SECS设置管理库失败!"); |
| | | return FALSE; |
| | | } |
| | | } |
| | | catch (const std::exception& ex) { |
| | | CString errorMsg; |
| | | errorMsg.Format(_T("初始化SECS设置管理库失败:%s"), CString(ex.what())); |
| | | AfxMessageBox(errorMsg, MB_ICONERROR); |
| | | return FALSE; |
| | | } |
| | | |
| | | |
| | | CServoDlg dlg; |
| | | m_pMainWnd = &dlg; |
| | | INT_PTR nResponse = dlg.DoModal(); |
| | |
| | | HSMS_Term(); |
| | | RX_Term(); |
| | | |
| | | // 清理 GDI+ |
| | | TermGDIPlus(); |
| | | |
| | | // 销毁报警表 |
| | | AlarmManager::getInstance().termAlarmTable(); |
| | | |
| | | // 销毁SECS设置管理库 |
| | | SECSConfigManager::getInstance().termSECSSetting(); |
| | | |
| | | return CWinApp::ExitInstance(); |
| | | } |
| | | |
| | | // 初始化 GDI+ |
| | | void CServoApp::InitGDIPlus() |
| | | { |
| | | // 初始化 GDI+ 图形库 |
| | | GdiplusStartup(&g_diplusToken, &g_diplusStartupInput, NULL); |
| | | } |
| | | |
| | | // 清理 GDI+ |
| | | void CServoApp::TermGDIPlus() |
| | | { |
| | | // 清理 GDI+ 图形库 |
| | | GdiplusShutdown(g_diplusToken); |
| | | } |