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

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]最近編寫(xiě)了一個(gè)升級(jí)設(shè)備的控件,可以集成到不同的配置程序中,但是每次關(guān)閉工程或者關(guān)閉編輯頁(yè)面的時(shí)候就會(huì)出現(xiàn)這個(gè)錯(cuò)誤,但是編譯和運(yùn)行時(shí)沒(méi)有任何問(wèn)題,僅僅在關(guān)閉編輯窗體頁(yè)面的時(shí)候會(huì)出現(xiàn)。添加的控件關(guān)閉編輯就

最近編寫(xiě)了一個(gè)升級(jí)設(shè)備的控件,可以集成到不同的配置程序中,但是每次關(guān)閉工程或者關(guān)閉編輯頁(yè)面的時(shí)候就會(huì)出現(xiàn)這個(gè)錯(cuò)誤,但是編譯和運(yùn)行時(shí)沒(méi)有任何問(wèn)題,僅僅在關(guān)閉編輯窗體頁(yè)面的時(shí)候會(huì)出現(xiàn)。


添加的控件



關(guān)閉編輯就會(huì)出現(xiàn)這個(gè)錯(cuò)誤



控件代碼編輯界面


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


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


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


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

就是這2行申請(qǐng)內(nèi)存導(dǎo)致的。



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


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


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

析構(gòu)函數(shù),有條件的去釋放內(nèi)存,這樣就可以解決編輯時(shí)產(chǎn)生的這個(gè)異常。


之前也遇到過(guò),但是不知道產(chǎn)生這個(gè)問(wèn)題的原因。



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

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

關(guān)鍵字: vc++ mod音樂(lè)

基類的析構(gòu)函數(shù)聲明為virtual,而且并不是所有的析構(gòu)函數(shù)都申明為virtual————————————因?yàn)楫?dāng)類里面有虛函數(shù)的時(shí)候,編譯器會(huì)給類添加一個(gè)虛函數(shù)表,里面來(lái)存放虛函數(shù)指針,這樣就會(huì)增加類

關(guān)鍵字: 析構(gòu)函數(shù)

[轉(zhuǎn)自]lemonClover的日記使用boost::enable_shared_from_this的注意事項(xiàng)2011-10-26 16:44:26?1. 如果一個(gè)類繼承了boost::enable_

關(guān)鍵字: 構(gòu)造函數(shù) 析構(gòu)函數(shù)

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

關(guān)鍵字: mfc vc++

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

關(guān)鍵字: vc++ 匯編語(yǔ)言

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

關(guān)鍵字: vc++ 模擬鍵盤

因?yàn)槲沂亲銮度胧介_(kāi)發(fā)的,每次設(shè)備程序更新后都需要修改上位機(jī),并且多個(gè)上位機(jī),修改起來(lái)特麻煩,又不想用C#主要是底層使用的是C語(yǔ)言,配置解析通信等在單片機(jī)里面寫(xiě)好后可以直接復(fù)制到C++中使用,比較方便,

關(guān)鍵字: .net vc++ 反射

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

關(guān)鍵字: c++ 構(gòu)造函數(shù) 析構(gòu)函數(shù)

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

關(guān)鍵字: vc++ 主機(jī)接口 modbus-rtu

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

關(guān)鍵字: vc++ gdi+
關(guān)閉