一  QT的内存管理

1  QT中的内存管理是QObject来管理的

2  QT中的内存管理没有cocos2dx中的引用计数

3  组件可以指定父对象

QTimer *timer = QTimer(this);   //这里的this实际上强制转换成为了QObject了。

4  每一个对象都有一个deleteLater()方法,

QLineEdit* edit = new QLineEdit(this);

delete edit;   //这里的delete马上调用析构函数对内存进行释放

Edit->deleteLater();   deleteLater不是马上释放的,而是发送了一个消息,缓一下,等下一个消息来的时候释放,这种方式是延时释放。

二  QT中制作动态库

A  新建一个库项目

项目目录结构如下:

编写代码

t14library_global.h

#ifndef T14LIBRARY_GLOBAL_H
#define T14LIBRARY_GLOBAL_H
 
#include <QtCore/qglobal.h>
 
#if defined(T14LIBRARY_LIBRARY)
#  define T14LIBRARYSHARED_EXPORT Q_DECL_EXPORT
#else
#  define T14LIBRARYSHARED_EXPORT Q_DECL_IMPORT
#endif
 
#endif // T14LIBRARY_GLOBAL_H

T14Library.h

#ifndef T14LIBRARY_H

#define T14LIBRARY_H

#include "t14library_global.h"

/*这里的T14LIBRARYSHARED_EXPORT就是用来做跨平台的一个宏*/

class T14LIBRARYSHARED_EXPORT T14Library

{

public:

T14Library();

//自己编写的函数

void Encrypt();

};

#endif // T14LIBRARY_H

T14Library.cpp

#include "T14Library.h"
#include <QDebug>
 
T14Library::T14Library()
{
}
 
void T14Library::Encrypt()
{
    qDebug() << "Encrypt";
}

点击构建按钮:

到项目目录E:\QT\build-T14Library-Desktop_Qt_5_3_MinGW_32bit-Debug\debug下查看:

B  添加一个空QT项目来使用QT

编写的代码如下:

T15UseLibrary.pro

SOURCES += \
    main.cpp
 
#如果QT mingw版本,使用动态库方式和Linux没区别(-L,-l)
#如果QT VS版本。。。使用动态库方式和windows没区别
#如果QT mingw版本,要调用VC写的动态库,使用一个工具,生成libXXXXXX.文件
# 注意-L后面是dll所在的文件夹路径,-l后面表示的是动态库的名字
LIBS += -LE:\QT\build-T14Library-Desktop_Qt_5_3_MinGW_32bit-Debug\debug -lT14Library

main.cpp

#include <QCoreApplication>
 
#include "../T14Library/T14Library.h"
 
int main(int argc,char *argv[])
{
    QCoreApplication app(argc,argv);
 
    T14Library d;
    d.Encrypt();
 
    app.exec();
}

运行结果:

三  编写一个静态库

创建项目:

一直点击,直到完成。

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

6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作相关推荐

  1. 【精华】详解Qt中的内存管理机制

    前言 内存管理,是对软件中内存资源的分配与释放进行有效管理的方法和理论. 众所周知,内存管理是软件开发的一个重要的内容.软件规模越大,内存管理可能出现的问题越多.如果像C语言一样手动地管理内存,一会给 ...

  2. C++中运行一个程序的内存分配情况及qt中的内存管理机制

    一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一 ...

  3. 形式参数内存在哪java_深入浅出Java中JVM内存管理

    原标题:深入浅出Java中JVM内存管理 Java岗位面试,JVM是对程序员基本功考察,通常会问你对JVM了解吗?可以分几部分回答这个问题,首先JVM内存划分 | JVM垃圾回收的含义 | 有哪些GC ...

  4. JNI中的内存管理(转)

    源:JNI中的内存管理 JNI 编程简介 JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互 ...

  5. 深度学习中的内存管理问题研究综述

    点击上方蓝字关注我们 深度学习中的内存管理问题研究综述 马玮良1,2, 彭轩1,2, 熊倩1,2, 石宣化1,2, 金海1,2 1 华中科技大学计算机科学与技术学院,湖北 武汉 430074 2 华中 ...

  6. 分布式存储开发:Curve中的内存管理

    前言 Curve 实践过程中遇到过几次内存相关的问题,与操作系统内存管理相关的是以下两次: chunkserver 上内存无法释放 mds 出现内存缓慢增长的现象 内存问题在开发阶段大多很难发现,测试 ...

  7. JVM基础 之Java HotSpot虚拟机中的内存管理

    1  简介 依托JavaTM 2平台的力量,标准版(J2SETM)实现了内存的自动管理,将开发人员从复杂的显式内存管理中解放出来. 本文将对Sun公司的J2SE发行版中的Java HotSpot虚拟机 ...

  8. python中画糖葫芦的代码_Python中的内存管理

    内存管理 包括: ①变量无须事先声明,变量无须指定类型 ②引用计数 ③垃圾回收 ④内存池机制 ①变量定义 不用事先声明变量类型而直接对变量进行赋值.对Python语言来讲,对象的类型和内存都是在运行时 ...

  9. Swift 中的内存管理详解

    这篇文章是在阅读<The Swift Programming Language>Automatic Reference Counting(ARC,自动引用计数)一章时做的一些笔记,同时参考 ...

最新文章

  1. 贵港职称计算机,2015广西职称计算机考试报名:贵港职称计算机报名入口
  2. :link,:visited,:focus,:hover,:active详解
  3. 1、leetcode704 二分查找*
  4. 多智能系统的第一个小视频
  5. python 保存本地乱码_请教大神,如何解决保存后的文件的乱码问题
  6. neo4j在linux下的安装
  7. linux平滑升级nginx,Nginx的平滑重启和平滑升级,nginx
  8. Xamarin中国峰会2019
  9. 【gRPC基础知识】快速部署
  10. WTA (winner-take-all) 与 自组织映射 SOM (self organizing map)的理解
  11. tensorflow官方中文文档(各种tf函数解释,看这一篇就够了)
  12. python账户密码_python02 用户名密码
  13. CPU负载均衡之EAS
  14. 软件详细设计文档模板
  15. 利用Proteus 8.9运行stm32最简单的跑马灯程序
  16. Dilated Convolutions 空洞卷积
  17. 2022年计算机二级Access数据库程序设计复习题及答案
  18. Java音频格式转换,支持amr、aud、slk、silk转成mp3
  19. linux下FFmpeg编译和解决nasm/yasm not found or too old错误
  20. rtk采点后如何导入cad_CAD图片导入:如何对JPG图片进行描图

热门文章

  1. Django框架(25.Django中的模板继承以及HTML转义)
  2. 深度学习-机器学习(5.2支持向量机SVM)
  3. 神经网络的梯度消失和过拟合产生原因及其解决方案
  4. boost::prev_permutation相关的测试程序
  5. boost::hana::prefix用法的测试程序
  6. boost::graph::distributed::distributed_queue用法的测试程序
  7. boost::incremental_components用法的测试程序
  8. boost::coroutine模块实现不对称链的测试程序
  9. boost::contract模块实现customer and manager的测试程序
  10. Boost:传输文件的测试程序