HSCDlg.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // HSCDlg.h : header file
  2. //
  3. #pragma once
  4. #include <vector>
  5. #include "afxcmn.h"
  6. #include "afxwin.h"
  7. #include <string>
  8. #define HEAD_LEN 4+8+32
  9. struct HSCDATA
  10. {
  11. CString name;
  12. CString path;
  13. CString version;
  14. CString time;
  15. CString len;
  16. CString crc;
  17. CString addr;
  18. CString version_add;
  19. int nLen;
  20. int nCrc;
  21. int nAddr;
  22. int count;
  23. int newcrc;
  24. };
  25. class DATASET
  26. {
  27. public:
  28. DATASET()
  29. {
  30. //beginaddr = HEAD_LEN;
  31. }
  32. void insertdata(HSCDATA data)
  33. {
  34. m_datas.push_back(data);
  35. //beginaddr += 4 + 4 + 8 + 4 + 4 + 4 + data.nLen;
  36. //ÖØÐ¼ÆËãÆðʼµØÖ·
  37. int subheads = 0;
  38. int lastlen = 0;
  39. for (auto &tda:m_datas)
  40. {
  41. subheads = (4 + 4 + 8 + 4 + 4 + 4)*m_datas.size();
  42. tda.nAddr = HEAD_LEN + subheads + lastlen;
  43. tda.addr = std::to_string(tda.nAddr).c_str();
  44. lastlen += tda.nLen;
  45. }
  46. }
  47. int getbeginaddr()
  48. {
  49. return beginaddr;
  50. }
  51. int getcount()
  52. {
  53. return m_datas.size();
  54. }
  55. std::vector<HSCDATA> getdatas()
  56. {
  57. return m_datas;
  58. }
  59. std::vector<HSCDATA> m_datas;
  60. private:
  61. int beginaddr;
  62. };
  63. // CHSCDlg dialog
  64. class CHSCDlg : public CDialogEx
  65. {
  66. // Construction
  67. public:
  68. CHSCDlg(CWnd* pParent = NULL); // standard constructor
  69. // Dialog Data
  70. enum { IDD = IDD_HSC_DIALOG };
  71. protected:
  72. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  73. // Implementation
  74. protected:
  75. HICON m_hIcon;
  76. // Generated message map functions
  77. virtual BOOL OnInitDialog();
  78. afx_msg void OnPaint();
  79. afx_msg HCURSOR OnQueryDragIcon();
  80. DECLARE_MESSAGE_MAP()
  81. public:
  82. afx_msg void ChooseA();
  83. afx_msg void ChooseB();
  84. void GetInfo_A();
  85. void GetInfo_B();
  86. void GetInfo_C();
  87. CString m_name_A;
  88. CString m_name_B;
  89. CString m_name_C;
  90. CString m_path_A;
  91. CString m_path_B;
  92. CString m_path_C;
  93. CString m_username;
  94. afx_msg void OnDropFiles(HDROP hDropInfo);
  95. afx_msg void Generate();
  96. CString m_version_A;
  97. CString m_time_A;
  98. CString m_len_A;
  99. CString m_crc_A;
  100. CString m_addr_A;
  101. int m_nLen_A;
  102. int m_nCrc_A;
  103. int m_nAddr_A;
  104. CString m_version_B;
  105. CString m_time_B;
  106. CString m_len_B;
  107. CString m_crc_B;
  108. CString m_addr_B;
  109. int m_nLen_B;
  110. int m_nCrc_B;
  111. int m_nAddr_B;
  112. CString m_version_C;
  113. CString m_time_C;
  114. CString m_len_C;
  115. CString m_crc_C;
  116. CString m_addr_C;
  117. int m_nLen_C;
  118. int m_nCrc_C;
  119. int m_nAddr_C;
  120. DATASET dataset;
  121. int GetInfo(CString name,CString path,HSCDATA& data);
  122. afx_msg void ChooseC();
  123. CListCtrl m_listctrl;
  124. void updatelistctrl();
  125. void updatelist();
  126. afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult);
  127. CEdit ED_CURNAME;
  128. CEdit ED_CURVER;
  129. afx_msg void OnBnClickedUpdate();
  130. afx_msg void OnBnClickedButton6();
  131. };