From d7c88780e1df54f34563d60bd7fa01011d2eef03 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 26 一月 2026 23:17:17 +0800
Subject: [PATCH] 1.CSVData.cpp 里 unserialize 用了 8*2、125*2,但 serialize 只写 8 + 125 字节。 m_svRawData.insert 的 end 指针是 pszBuffer + 125*2,没有用 index 计算,可能把无效区域一起拷进去。 一旦 size 实际是 133(不是 266),就会直接越界,堆会被破坏,m_svDatas.clear() 在销毁元素时崩。
---
SourceCode/Bond/Servo/CUserManager2Dlg.h | 29 ++++++++++++++++++++++++-----
1 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/SourceCode/Bond/Servo/CUserManager2Dlg.h b/SourceCode/Bond/Servo/CUserManager2Dlg.h
index 5085a9e..2a2507c 100644
--- a/SourceCode/Bond/Servo/CUserManager2Dlg.h
+++ b/SourceCode/Bond/Servo/CUserManager2Dlg.h
@@ -1,26 +1,45 @@
锘�#pragma once
-
-// CUserManager2Dlg 瀵硅瘽妗�
+#include "CUserManager2.h"
+#include <string>
+#include <vector>
class CUserManager2Dlg : public CDialogEx
{
DECLARE_DYNAMIC(CUserManager2Dlg)
public:
- CUserManager2Dlg(CWnd* pParent = nullptr); // 鏍囧噯鏋勯�犲嚱鏁�
+ CUserManager2Dlg(CWnd* pParent = nullptr);
virtual ~CUserManager2Dlg();
-// 瀵硅瘽妗嗘暟鎹�
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG_USER_MANAGER2 };
#endif
protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 鏀寔
+ virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
afx_msg void OnSize(UINT nType, int cx, int cy);
+ afx_msg void OnBnClickedButtonAdd();
+ afx_msg void OnBnClickedButtonEdit();
+ afx_msg void OnBnClickedButtonDel();
+ afx_msg void OnBnClickedButtonResetPwd();
+ afx_msg void OnBnClickedButtonEnable();
+ afx_msg void OnLvnItemchangedUsers(NMHDR* pNMHDR, LRESULT* pResult);
+
+private:
+ CListCtrl m_listUsers;
+ std::vector<CUserManager2::UserInfo> m_users;
+
+ void InitList();
+ void RefreshUserList();
+ void UpdateButtonState();
+ int GetSelectedIndex() const;
+ const CUserManager2::UserInfo* GetSelectedUser() const;
+ std::wstring ToWString(const CString& text) const;
+ void ShowErrorMessage(const CString& action, int code);
+ bool IsCurrentUser(const CUserManager2::UserInfo& info) const;
};
--
Gitblit v1.9.3