下载  >  移动开发  >  QT  > Qt 创建dll实例

Qt 创建dll实例 评分:

本文图文并茂的描述了怎么使用Qt创建Dll的全过程,非常有参考价值
se工■盘ge工 工user1bal.h 改后头文件 Iuserglobal. cpp」 增加cpP文件 在编写之前我们应该看以下.pro文件以确认我们的工稈是否正确 TARGE 以品 mAnagE TEMPLATE=lib DE3卫D工R R=…·/test- build- desktop/ debug DE卫工E+= USERMANAGER I工 BRARY SOURCES += usermanager CPP 工 users1oba1.cpp HEADERS + usernanagerh 工 users1oba1.h 绿色区域:提供的是项目名称也是D川生成后的名字。 蓝色区域:说明了生成的是斥文件,而非.Exe文件 红色区域:给定了库牛成的目录。 灰色区域:给定了外部宏定义,这里定义的是库德宏。 紫色区域:是库的依赖文件。 首先我们应该编写对外接∏。即 luserglobal h ifndef IUSERGLOBAT H define IUSERGLOBAL H include <Qtcore/aglobal.h> # if de fined( USERMANAGER工工 ERARY) define USERMANAGERSHARED EXPORT Q DECL EXPORT felse f define USERMANAGERSHARED EXPORT Q DECI IMPORT 甚 endif 我们会看到这样儿句,不要管他把“四3 RMANAGERSHARED EXP@R型”复制出来因为我 们,写厍函数需要用到。 然后,我们该写我们的接∏了。 写接口的时候要按照“复用”,“需求”,“封装”3个特性进行封装接口。 复用:指的是你写的接凵不是针对某一个工程,而是针对某一类功能而进行封装 需求:与出来的接口必须能够满,使用DLL的需求,提供的功能要少,但是要全 封装:这个封装并不是D自带的封装特性,而是在写接口的时候要注意,不要把DⅢ 里的成员提供出去。而只是提供对应功能。(这里说一下,提供一个成员,还不如写 个类来的方使,做DL的意义就没有了。) 好了开始写我们的接口吧。 第,我们要确认,对DL的需求。是否可以操作,DL是否需要通知给调用者, 第二,我们要确认,我们的DL属于的类型,比如界面DLL,功能DLL等等 第三,我们的DL,有几个默认的库函数。(建议越少越好 就啰嗦到这里了 开始吧。我的DLL功能显示一个界面所以我给预留的操作接口是(下图) 14盟c1 ass USerc。ntro1 15 16 public: virtual void showWindow()=0 18 virtual void closewindow ()=0 19 virtual void hideWindow ()=0 20 △着见名知意的原则,要是看不懂就别继续看了。 然后需要用我的DLL通知调用者,我的处理状态,所以需要创建一个通告接口。 22日c1a9 IUserNotify 222 public: 26 enum Notify ioveR =0, CONTINUE 1 27 virtual void children (int w IUser notify: COFTIEUE 28 29} 方法同上 这样我们的接∏预留的就可以了。(对于我的程序足够了) 在这里需要说一下,接口是根据的你的程序需求而定,并非统一规格。 做完这些,我们就可以,把一个简单库函数添加进来了 USERMANAGERSHARED EXPORT IUserControl CreateUser (IUserNotify pNotify-o 根据格式,返冋操作接口,接受通告接口。 接下来,实现我们的DL功能 USe工■乱君e yot us er manager. pro 叫工erg1ba1.h ℃pp usermanager CP 把对应的功能写到对应的文件内,如果功能多,可是适量添加文件。 class Usermanager: public Dialog, public IUsercontrol 这里我实现了一个 Dialog,并让继承了操作接口,方便调用DLL者操作 Lot user manager pro -C He ader 工 user=loba1.k usermanager, h Sources 网 Iuserglobal. Cpp 在库头文件,对应的Cpp中实现库接口凶数 include "Iuserglobal h 2 #include " usermanagerh 4 E IUserControl* CreateUser(IUserNotify *pNotify, Qwidget*p) IIsermanager mew Userman月ger(r) pNotify->children (IUserNotify: OVER)i return (IUserControlni 1 以上内容是基础框架,按照这个框架写,写出米的就是好DLL 好了DLL完成了。 我们在写个测试程序吧。 日-test 工ueY心b,五 dial。g.cpp malI. CPP 包涵DLL的头文件。 然后再pro中添加工s /debug/usermanager dll 指定号库路径 ifndef DIALOG H tde fine DIATOG H 4#include <QtGui/dIalog> 5 include "Iuserglobalh 7E class Dialog public Dialog, public IUserNotify Q OBUECT 10 public: Dialog (QWidget Parent = 0)i yoid children(int w)i 1a1g0) public slots 16 void showMyWindow(); 18 private: QWidget m Widget 20} 21 22 +endif//DIALOG H h文件内容继承通告接凵接受通告信息 inc⊥ude"dia⊥og.h" 2 include <qDebug> 3 include <QPushButton> 5 Dialog:: Dialog(Qwidget *parent) gD1a1。g( parent) QPushButton wbtn new QPushButton(this)i connect(btn, SICNAL(clicked()) this, SLoT( showMyWindow ()))i res1ze(800,600) 3日卫1a1。g D1a⊥g() B void Dialog: children (int wl i王( IUserNctify:: OVER) dEbug ()<<over 6E void Dialog:: showMyWindow( USercOntrol userid user CreateUser(thisthis) usex->ghow啊 endow() cpp完成对DLL的操作以及获取通告。 完成后,编译D工程,然后吧DL放到test目录卜,运行test即可

...展开详情
2013-01-19 上传 大小:368KB
举报 收藏
分享

评论 下载该资源后可以进行评论 共6条

oslan 只能给2个星,作者本意比较好,介绍了qt中如何创建和使用dll,但是作者是否能够说明详细一些?比如,Usermanager的类定义是否能展开一下;虚接口应该怎么实现,以保证至少能够编译等。另外,哪段代码应该在哪个头文件也没有交代,内容比较零碎,过程很不完整。估计只有作者能够看懂吧:)
2014-09-25
回复
zf993209 适合初学者学习。。。
2014-07-20
回复
chn38141618 挺有帮助的~适合初学者~
2014-03-20
回复
beihuxu 适合初学Qt 应用dl的。
2013-09-04
回复
deargirl1981 挺不错的 适合初学dll变成的学习 感谢一下吧!
2013-03-10
回复
qt dll调用实例

qt dll调用实例, qt dll调用实例 注意工程配置,我的开发环境为qt creator 4.84+mingw.exe

立即下载
QT生成DLL库文件的方法和使用方法详解和实例源代码

概括来说, 要把Qt程序做成dll,刚开始可以像做一般应用程序一样实现你程序的所有功能,然后再做一个接口就OK了。 这里说的是(我这儿用的是Qt4.7.0):一个实现加法功能函数封装在Dll文件中 1.用Qt 生成一个项目 不要ui(也可以要)。 2.把pro文件里面的app改成lib,这样之后就能生成Dll文件了。 3、具体实现方法在我的实例里面有。

立即下载
Qt中QSqlDatabase的使用实例

本实例详细说明了怎么在Qt中使用QSqlDatabase类连接并操作数据Oracle数据库。Qt中使用Oracle数据库,必须得有数据库驱动。项目中已经包含了sqldrivers文件夹。也可将sqldrivers中的qsqloci4.dll文件复制到你的Qt安装目录与bin同级的plugins/sqldrivers下。只需将查询语句中的数据库用户名字和表格名字修改即可。另外我提供的库是发布版本的,只能将工程编译成发布版本的才能运行哦。 本例程对Qt的初学者有极大的帮助。

立即下载
Qt5使用动态库实例

Qt5中创建及使用动态库。。

立即下载
QT5.9.7 访问MySQL实例

运行前请将压缩包里的MySQL数据库连接驱动文件 libmysql.dll 和 libmysql.lib 放到QT5的bin目录。

立即下载
qt5教程(附标签)

C++ Qt5 范例开发大全 作者: Longki 目 录 第 1章 开发环境 1.1 Qt 简介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5 1.2 下载安装 Qt Creator 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 1.3 第一个程序 Hello World 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 第2章 窗体应用 1.1 窗体基类说明 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

立即下载
QT主界面调用模态对话框示例程序

QT主界面调用模态对话框示例程序源码程序,很详细希望可以帮到你

立即下载
动态库封装调用窗体实例.rar

Delphi动态库封装与调用窗体的实例,代码简单易懂,适合新手学习。动态库封装方法大家都会,但是对于封装窗体可能比较陌生。

立即下载
Qt5.11.1+VS2017 X64 C++动态编译 串口通讯源代码 重新上传

Qt5.11.1+VS2017 X64 C++动态编译 串口通讯源代码,之前上传一份但忘记清理调试过程产生的缓存导致文件解压后有一个G,现在重新传一份.最近无聊就上论坛找教程写了一个串口通讯的程序.本人是新手所以可能写得一般般.不过为了加强记忆基本上每一行代码都加了注解.程序在通讯上经过测试没有问题.但在HEX和Ascii之间的转换上是直接复制网上代码的没经过测试 另外在此跪求静态编译的64位的qt5.11.1+VS2017资源和环境配置方法

立即下载
PrinterFactory

用Qt(C++)底层写的工厂类dll来控制打印机,思想:调用windows API直接向打印机接口中写入控制码来控制打印机。使用于各类打印机,只需要修改打印机的控制码,已测试可正常使用

立即下载
网管教程 从入门到精通软件篇.txt

网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。   Bootcfg   bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。   含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg

立即下载
C++ 人脸识别程序 简单demo (基于虹软SDK)

本人尝试了几种人脸识别开源或免费的库和SDK(opencv+opencv_contrib-master+cmake, 中科院山世光老师开源的Seetaface, 该代码里用到的虹软免费SDK) 个人感觉虹软的sdk较好吧,还是那句话 两分你买不了吃亏,两分你买不了上当

立即下载
libfacedetection库

文件夹中包含win64,win32,arm版,此库是老版本,新版本有源码,可去于老师GitHub上下载

立即下载
检测U盘热插拔事件

检测U盘热插拔事件检测U盘热插拔事件检测U盘热插拔事件

立即下载
QT-MyEXE-LIB-WINDOWS.rar

windows下 exe 调用DLL 的实例代码,亲测有效,给初学者一个例子。

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载
qBittorrent插件集合(22个)

btetree.py cpasbien.py divxtotal.py ilcorsaronero.py kickass.py leetx.py limetorrents.py linuxtracker.py nyaa.py nyaapantsu.py nyaasi.py pantsu.py psychocydd.py rarbg.py rutor.py skytorrents.py sukebei.py sumotorrent.py tntvillage.py torrent9.py torrentfunk.py zooqle.py

立即下载
压缩包爆破解密工具(7z、rar、zip)

压缩包内包含三个工具,分别可以用来爆破解密7z压缩包、rar压缩包和zip压缩包。

立即下载
服务器CPU天梯图_最全CPU天梯图

主要是服务器CPU天梯图_最全CPU天梯图,文字版,不是图片

立即下载