// HSCDlg.h : header file // #pragma once #include #include "afxcmn.h" #include "afxwin.h" #include #define HEAD_LEN 4+8+32 struct HSCDATA { CString name; CString path; CString version; CString time; CString len; CString crc; CString addr; CString version_add; int nLen; int nCrc; int nAddr; int count; int newcrc; }; class DATASET { public: DATASET() { //beginaddr = HEAD_LEN; } void insertdata(HSCDATA data) { m_datas.push_back(data); //beginaddr += 4 + 4 + 8 + 4 + 4 + 4 + data.nLen; //重新计算起始地址 int subheads = 0; int lastlen = 0; for (auto &tda:m_datas) { subheads = (4 + 4 + 8 + 4 + 4 + 4)*m_datas.size(); tda.nAddr = HEAD_LEN + subheads + lastlen; tda.addr = std::to_string(tda.nAddr).c_str(); lastlen += tda.nLen; } } int getbeginaddr() { return beginaddr; } int getcount() { return m_datas.size(); } std::vector getdatas() { return m_datas; } std::vector m_datas; private: int beginaddr; }; // CHSCDlg dialog class CHSCDlg : public CDialogEx { // Construction public: CHSCDlg(CWnd* pParent = NULL); // standard constructor // Dialog Data enum { IDD = IDD_HSC_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: HICON m_hIcon; // Generated message map functions virtual BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: afx_msg void ChooseA(); afx_msg void ChooseB(); void GetInfo_A(); void GetInfo_B(); void GetInfo_C(); CString m_name_A; CString m_name_B; CString m_name_C; CString m_path_A; CString m_path_B; CString m_path_C; CString m_username; afx_msg void OnDropFiles(HDROP hDropInfo); afx_msg void Generate(); CString m_version_A; CString m_time_A; CString m_len_A; CString m_crc_A; CString m_addr_A; int m_nLen_A; int m_nCrc_A; int m_nAddr_A; CString m_version_B; CString m_time_B; CString m_len_B; CString m_crc_B; CString m_addr_B; int m_nLen_B; int m_nCrc_B; int m_nAddr_B; CString m_version_C; CString m_time_C; CString m_len_C; CString m_crc_C; CString m_addr_C; int m_nLen_C; int m_nCrc_C; int m_nAddr_C; DATASET dataset; int GetInfo(CString name,CString path,HSCDATA& data); afx_msg void ChooseC(); CListCtrl m_listctrl; void updatelistctrl(); void updatelist(); afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult); CEdit ED_CURNAME; CEdit ED_CURVER; afx_msg void OnBnClickedUpdate(); afx_msg void OnBnClickedButton6(); };