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/BoounionPLC/TopToolbar.cpp | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/SourceCode/Bond/BoounionPLC/TopToolbar.cpp b/SourceCode/Bond/BoounionPLC/TopToolbar.cpp index 0fbbb05..72b0cc3 100644 --- a/SourceCode/Bond/BoounionPLC/TopToolbar.cpp +++ b/SourceCode/Bond/BoounionPLC/TopToolbar.cpp @@ -29,6 +29,7 @@ DDX_Control(pDX, IDC_BUTTON_ADD, m_btnAdd); DDX_Control(pDX, IDC_BUTTON_DELETE, m_btnDelete); DDX_Control(pDX, IDC_BUTTON_SETTINGS, m_btnSettings); + DDX_Control(pDX, IDC_BUTTON_ALARM, m_btnAlarm); DDX_Control(pDX, IDC_BUTTON_OPERATOR, m_btnOperator); } @@ -51,6 +52,7 @@ InitBtn(m_btnAdd, "Add_blue_32.ico", "Add_Gray_32.ico"); InitBtn(m_btnDelete, "delete_blue_32.ico", "delete_Gray_32.ico"); InitBtn(m_btnSettings, "Settings_High_32.ico", "Settings_Gray_32.ico"); + InitBtn(m_btnAlarm, "Alarm_o_32.ico", "Alarm_Gray_32.ico"); InitBtn(m_btnOperator, "Operator_High_32.ico", "Operator_Gray_32.ico"); HMENU hMenu = LoadMenu(AfxGetInstanceHandle(), MAKEINTRESOURCEA(IDR_MENU_OPEATOR)); m_btnOperator.SetMenu(hMenu); @@ -123,6 +125,11 @@ x += BTN_WIDTH; x += 2; + pItem = GetDlgItem(IDC_BUTTON_ALARM); + pItem->MoveWindow(x, y, BTN_WIDTH, nBthHeight); + x += BTN_WIDTH; + x += 2; + x = rcClient.right - 5 - BTN_WIDTH - 20; pItem = GetDlgItem(IDC_BUTTON_OPERATOR); pItem->MoveWindow(x, y, BTN_WIDTH + 20, nBthHeight); @@ -170,6 +177,7 @@ case IDC_BUTTON_ADD: case IDC_BUTTON_DELETE: case IDC_BUTTON_SETTINGS: + case IDC_BUTTON_ALARM: GetParent()->SendMessage(ID_MSG_TOOLBAR_BTN_CLICKED, 0, LOWORD(wParam)); break; } -- Gitblit v1.9.3