From d2df50ab05a9d9a85a4b735786fe3f2b6e00186e Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 26 一月 2026 22:19:17 +0800
Subject: [PATCH] 1.已把空指针和防护都补上了:创建消息失败直接返回并删除 action;spooling/发送/序列化都会跳过空消息并记录错误,避免再因 m_pSendMessage 为空导致崩溃或写出坏缓存。

---
 SourceCode/Bond/BondEq/CPanelProject.cpp |   42 +++++++++++++++++++++++++++++++++---------
 1 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/SourceCode/Bond/BondEq/CPanelProject.cpp b/SourceCode/Bond/BondEq/CPanelProject.cpp
index 92cf9e9..355ec58 100644
--- a/SourceCode/Bond/BondEq/CPanelProject.cpp
+++ b/SourceCode/Bond/BondEq/CPanelProject.cpp
@@ -18,7 +18,9 @@
 	m_hbrBkgnd = nullptr;
 	m_nPanelWidth = int((double)GetSystemMetrics(SM_CXSCREEN) * 0.25);
 	m_pAccordionWnd = nullptr;
-	m_pPageRemoteEqs = nullptr;
+	//m_pPageRemoteEqs = nullptr;
+	m_pPageMain = nullptr;
+	m_pPageComponents = nullptr;
 }
 
 CPanelProject::~CPanelProject()
@@ -70,11 +72,21 @@
 	m_pAccordionWnd->Setpadding(PADDING_BOTTOM, 2);
 	m_pAccordionWnd->LoadExpandIcon(strExpandIcon, strCloseIcon);
 	
-	m_pPageRemoteEqs = new CProjectPageRemoteEqs();
-	m_pPageRemoteEqs->Create(IDD_PROJECT_PAGE_REMOTEEQS, GetDlgItem(IDC_ACCORDION_WND1));
-	m_pPageRemoteEqs->ShowWindow(SW_SHOW);
-	m_pAccordionWnd->AddItem("杩滅▼璁惧", m_pPageRemoteEqs, 0, TRUE, TRUE);
+	//m_pPageRemoteEqs = new CProjectPageRemoteEqs();
+	//m_pPageRemoteEqs->Create(IDD_PROJECT_PAGE_REMOTEEQS, GetDlgItem(IDC_ACCORDION_WND1));
+	//m_pPageRemoteEqs->ShowWindow(SW_SHOW);
+	//m_pAccordionWnd->AddItem("杩滅▼璁惧", m_pPageRemoteEqs, 0, TRUE, TRUE);
+
+	m_pPageMain = new CProjectPageMain();
+	m_pPageMain->SetPLC(theApp.m_model.getBonder().getPLC("PLC(1)"));
+	m_pPageMain->Create(IDD_PROJECT_PAGE_MAIN, GetDlgItem(IDC_ACCORDION_WND1));
+	m_pPageMain->ShowWindow(SW_SHOW);
+	m_pAccordionWnd->AddItem("涓婚〉闈�", m_pPageMain, 0, TRUE, TRUE);
 	
+	m_pPageComponents = new CProjectPageComponents();
+	m_pPageComponents->Create(IDD_PROJECT_PAGE_COMPONENTS, GetDlgItem(IDC_ACCORDION_WND1));
+	m_pPageComponents->ShowWindow(SW_SHOW);
+	m_pAccordionWnd->AddItem("缁勪欢鍒楄〃", m_pPageComponents, -1, TRUE, TRUE);
 
 	return TRUE;  // return TRUE unless you set the focus to a control
 				  // 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
@@ -110,10 +122,22 @@
 		::DeleteObject(m_hbrBkgnd);
 	}
 
-	if (m_pPageRemoteEqs != nullptr) {
-		m_pPageRemoteEqs->DestroyWindow();
-		delete m_pPageRemoteEqs;
-		m_pPageRemoteEqs = nullptr;
+	if (m_pPageComponents != nullptr) {
+		m_pPageComponents->DestroyWindow();
+		delete m_pPageComponents;
+		m_pPageComponents = nullptr;
+	}
+
+	//if (m_pPageRemoteEqs != nullptr) {
+	//	m_pPageRemoteEqs->DestroyWindow();
+	//	delete m_pPageRemoteEqs;
+	//	m_pPageRemoteEqs = nullptr;
+	//}
+
+	if (m_pPageMain != nullptr) {
+		m_pPageMain->DestroyWindow();
+		delete m_pPageMain;
+		m_pPageMain = nullptr;
 	}
 }
 

--
Gitblit v1.9.3