天天看點

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作



一 

qt的記憶體管理

1

 qt中的記憶體管理是qobject來管理的

2

 qt中的記憶體管理沒有cocos2dx中的引用計數

元件可以指定父對象

qtimer *timer = qtimer(this);  

//這裡的this實際上強制轉換成為了qobject了。

每一個對象都有一個deletelater()方法,

qlineedit* edit = new qlineedit(this);

delete edit;  

//這裡的delete馬上調用析構函數對記憶體進行釋放

edit->deletelater();  

deletelater不是馬上釋放的,而是發送了一個消息,緩一下,等下一個消息來的時候釋放,這種方式是延時釋放。

二 

qt中制作動态庫

建立一個庫項目

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作
6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作
6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作
6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作
6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

項目目錄結構如下:

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

編寫代碼

t14library_global.h

t14library.h

#ifndef

t14library_h

#define

#include

"t14library_global.h"

/*這裡的t14libraryshared_export就是用來做跨平台的一個宏*/

class

t14libraryshared_export

t14library

{

public:

t14library();

//自己編寫的函數

void

encrypt();

};

#endif

//

t14library.cpp

點選建構按鈕:

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

到項目目錄e:\qt\build-t14library-desktop_qt_5_3_mingw_32bit-debug\debug下檢視:

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

添加一個空qt項目來使用qt

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

編寫的代碼如下:

t15uselibrary.pro

main.cpp

運作結果:

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

三 

編寫一個靜态庫

建立項目:

6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作
6.關于QT中的記憶體管理,動态的制作,動态庫的調用,靜态庫的制作

一直點選,直到完成。

這裡的靜态庫就如同是一個普通的項目