// ConfigTool.h: ConfigTool 应用程序的主头文件 // #pragma once #ifndef __AFXWIN_H__ #error "include 'pch.h' before including this file for PCH" #endif #include "resource.h" // 主符号 #include "../mylib/LOGGER/Logger.hpp" #include "../MyLib/MHashINI/MHash.hpp" // CConfigToolApp: // 有关此类的实现,请参阅 ConfigTool.cpp // class CConfigToolApp : public CWinApp { public: CConfigToolApp() noexcept; // 重写 public: virtual BOOL InitInstance(); virtual int ExitInstance(); // 实现 afx_msg void OnAppAbout(); DECLARE_MESSAGE_MAP() }; extern CConfigToolApp theApp; void Trans_Tunc(unsigned int, EXCEPTION_POINTERS*); #define CHECKE(func) try {func;} catch(SE_Exception &e) {DisplayException(_T(__FILE__),__LINE__,_T(__FUNCTION__),_T(#func),e);} catch (CException * e) {DisplayException(_T(__FILE__),__LINE__,_T(__FUNCTION__),_T(#func),e);} catch (...){DisplayException(_T(__FILE__),__LINE__,_T(__FUNCTION__),_T(#func));} class SE_Exception { private: SE_Exception() {} unsigned int nSE; PVOID Addr; CString InfoStr; public: SE_Exception(SE_Exception& e) : nSE(e.nSE) {} SE_Exception(unsigned int n) :nSE(n) {} SE_Exception(unsigned int n, PVOID a) :nSE(n), Addr(a) {} SE_Exception(unsigned int n, PVOID a, CString &str1) :nSE(n), Addr(a), InfoStr(str1) {} ~SE_Exception() {} unsigned int getSeNumber() { return nSE; } PVOID getAddress() { return Addr; } CString & getInfoStr() { return InfoStr; } }; int DisplayException(CString File, int Line, CString Func, CString Sentence, SE_Exception &e); int DisplayException(CString File, int Line, CString Func, CString Sentence, CException *e); int DisplayException(CString File, int Line, CString Func, CString Sentence); int SaveMyConfig(); int LoadMyConfig(); int SysLog(CString s, int channel = 0); int DbgLog(CString s, int channel = 0); int PopupMessage(CString s, int channel = 0); void DoEvents(); extern MHash MyCfg1; extern Logger myLogger1; extern MHash DeviceList; CString& FormatHex(void * databuf, int nSize);