天天看点

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中的内存管理,动态的制作,动态库的调用,静态库的制作

一直点击,直到完成。

这里的静态库就如同是一个普通的项目