日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 充電吧
[導讀]最近編寫了一個升級設備的控件,可以集成到不同的配置程序中,但是每次關閉工程或者關閉編輯頁面的時候就會出現(xiàn)這個錯誤,但是編譯和運行時沒有任何問題,僅僅在關閉編輯窗體頁面的時候會出現(xiàn)。添加的控件關閉編輯就

最近編寫了一個升級設備的控件,可以集成到不同的配置程序中,但是每次關閉工程或者關閉編輯頁面的時候就會出現(xiàn)這個錯誤,但是編譯和運行時沒有任何問題,僅僅在關閉編輯窗體頁面的時候會出現(xiàn)。


添加的控件



關閉編輯就會出現(xiàn)這個錯誤



控件代碼編輯界面


通過多次的調試發(fā)現(xiàn),只要把控件代碼的析構函數(shù)刪除掉就會解決這個問題


	protected:
		///
		///?清理所有正在使用的資源。
		///
		~SoftwareUpgradeControl()
		{
			if?(components)
			{
				delete?components;
				delete?this->pUartTxBuff;
				delete?this->pUartRxBuff;
				if?(this->pFileBuff?!=?nullptr)
				{
					delete?this->pFileBuff;
					this->pFileBuff?=?nullptr;
				}
			}
		}


通過調試發(fā)現(xiàn)問題出現(xiàn)在構造函數(shù)中申請內存導致的,如果不在構造函數(shù)申請內存或者釋放的時候有條件釋放,比如增加一個標記,程序運行后才釋放,在編輯過程中編譯器也會通過構造代碼來繪制界面,這個時候申請內存,在關閉窗口時會釋放就會出問題,實際上知道讓程序在運行的時候釋放掉內存,在編輯的時候不調用就可以避免這個問題。


	//必須有一個不帶參數(shù)的構造函數(shù),否則無法再工具箱中顯示
		SoftwareUpgradeControl()
		{
			InitializeComponent();
			//
			//TODO:?在此處添加構造函數(shù)代碼
			//
			this->isStartDownload?=?FALSE;					//沒有開始下載
			this->isGetInfo?=?FALSE;						//是否獲取過信息
			//申請內存
			this->pUartTxBuff?=?new?BYTE[4096];
			this->pUartRxBuff?=?new?BYTE[4096];

就是這2行申請內存導致的。



//必須有一個不帶參數(shù)的構造函數(shù),否則無法再工具箱中顯示
		SoftwareUpgradeControl()
		{
			InitializeComponent();
			//
			//TODO:?在此處添加構造函數(shù)代碼
			//
			this->isStartDownload?=?FALSE;					//沒有開始下載
			this->isGetInfo?=?FALSE;						//是否獲取過信息
			this->isRun?=?false;
			//申請內存
			this->pUartTxBuff?=?new?BYTE[4096];
			this->pUartRxBuff?=?new?BYTE[4096];


增加一個isRun變量,在構造函數(shù)中將其設置為無效,在非構造函數(shù)中將其設置為有效,這樣析構就會識別出代碼是否在運行狀態(tài)還是在預編譯狀態(tài)。


protected:
		///
		///?清理所有正在使用的資源。
		///
		~SoftwareUpgradeControl()
		{
			if?(components)
			{
				delete?components;
				if?(this->isRun?!=?false)	//必須在程序運行的某個地方將isRun=ture,這樣在此處就會釋放內存,但是編輯的時候不會出現(xiàn)問題
				{
					delete?this->pUartTxBuff;
					delete?this->pUartRxBuff;
				}
				
				if?(this->pFileBuff?!=?nullptr)
				{
					delete?this->pFileBuff;
					this->pFileBuff?=?nullptr;
				}
			}
		}

析構函數(shù),有條件的去釋放內存,這樣就可以解決編輯時產生的這個異常。


之前也遇到過,但是不知道產生這個問題的原因。



本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

最近一直在研究mod音樂,很好玩,和midi差不多,mod音樂也細分為很多格式,如it,xm,mod等,如果你使用過keygen,那你一定聽過那 里面的動聽音樂吧~呵呵~撒卡也是因此而著迷,上高中的時

關鍵字: vc++ mod音樂

基類的析構函數(shù)聲明為virtual,而且并不是所有的析構函數(shù)都申明為virtual————————————因為當類里面有虛函數(shù)的時候,編譯器會給類添加一個虛函數(shù)表,里面來存放虛函數(shù)指針,這樣就會增加類

關鍵字: 析構函數(shù)

[轉自]lemonClover的日記使用boost::enable_shared_from_this的注意事項2011-10-26 16:44:26?1. 如果一個類繼承了boost::enable_

關鍵字: 構造函數(shù) 析構函數(shù)

MFC控件隨著窗口大小變化VC++剛接觸MFC不久,對MFC的許多函數(shù)和功能還不是很了解。所以,在仿照書本開發(fā)一個仿QQ的通訊程序的時候,就碰到了一個怎么樣使控件隨著窗體變化的問題。好了,廢話不多說,

關鍵字: mfc vc++

vc++ 中開發(fā)匯編語言?匯編程序結構 一個顯示字符串的匯編程序程序格式 一、模式定義二、includelib語句三、函數(shù)聲明語句四、數(shù)據(jù)和代碼部分Visual C/C++環(huán)境 建立工程匯編程序的調試

關鍵字: vc++ 匯編語言

[摘要:VC摹擬鍵盤輸進 找了一周,終究找到摹擬鍵盤輸進的方式了,不外話道照樣要看靠譜的開源項目,才干快速找到辦理題目的方式啊,空話未幾道,進進主題。 摹擬鍵盤的方式有三種(我]? ? ? ? ? ?

關鍵字: vc++ 模擬鍵盤

因為我是做嵌入式開發(fā)的,每次設備程序更新后都需要修改上位機,并且多個上位機,修改起來特麻煩,又不想用C#主要是底層使用的是C語言,配置解析通信等在單片機里面寫好后可以直接復制到C++中使用,比較方便,

關鍵字: .net vc++ 反射

__attribute__:?GNU C 的一大特色就是__attribute__ 機制。__attribute__ 可以設置函數(shù)屬性(Function),變量屬性(Variable)和類型屬性(Ty

關鍵字: c++ 構造函數(shù) 析構函數(shù)

計算機上面使用Modbus讀取傳感器或相關設備還是比較常用的,之前寫的Modbus-RTU協(xié)議將串口封裝到了協(xié)議棧內,使用的時候遇到短板了,比如我最新需要使用TCP來讀取Modbus設備,就不好用了,

關鍵字: vc++ 主機接口 modbus-rtu

這幾天放假在家無聊編一個程序,在加載png時遇到了麻煩,后來用了兩個方法解決了。一個是用GDI+,另外就是用vs.net MFC自帶的CImage。先看看GDI+的方法方法1:1.GDI+畫透明圖層

關鍵字: vc++ gdi+
關閉