女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

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

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


添加的控件



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



控件代碼編輯界面


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


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


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


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

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



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


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


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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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