zxd
2023-10-21 89cd7441c184d37f90d4d5311b348e938119765f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
// MultiTerminal2.h: MultiTerminal2 应用程序的主头文件
//
#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"
 
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;
 
 
// CMTerm2App:
// 有关此类的实现,请参阅 MultiTerminal2.cpp
//
 
class CMTerm2App : public CWinAppEx
{
public:
    CMTerm2App() noexcept;
    CMultiDocTemplate* pDocTemplate;
 
    CMultiDocTemplate * m_pLdsViewTemplate;
    CMultiDocTemplate * m_pBldViewTemplate;
    CMultiDocTemplate * m_pBnlViewTemplate;
    CMultiDocTemplate * m_pCtrlViewTemplate;
    CMultiDocTemplate * m_pProgViewTemplate;
 
    CMultiDocTemplate * m_pCoilViewTemplate;
    CMultiDocTemplate * m_pDataViewTemplate;
 
    CMultiDocTemplate * m_pCommDevViewTemplate;
 
    
    CMultiDocTemplate * m_pNewDocTemplate;
 
 
// 重写
public:
    virtual BOOL InitInstance();
    virtual int ExitInstance();
 
// 实现
    bool m_bHiColorIcons;
 
    afx_msg void OnAppAbout();
    DECLARE_MESSAGE_MAP()
    afx_msg void OnFileNew();
    afx_msg void OnComunicationSet();
    afx_msg void OnEnvSet();
};
 
extern CMTerm2App theApp;
 
//class CAnsiParser;
//class CDataParser1;
//class KLink;
//class CSerialCom;
//class HvSerialPort;
 
//extern CAnsiParser MyAnsiParser1;
//extern CDataParser1 MyDataParser1;
//extern KLink MyKLink1;
// extern CSerialCom MySerialCom1;
//extern HvSerialPort myHvSerialPort1;
 
 
CString & intToString(int num);
CString & intToBinString(int num, int digits = 8);
 
int get_com_name(CString comx, CString &namebuf);