QT5 动态链接库的创建和使用
记录一下QT5 动态链接库的创建和使用
在文章的最后有完毕的代码供下载
1.创建动态链接库
先新建一个库项目
选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld
再点击下一步到
假设这里我们须要QtGui所以也勾选上了
再点击下一步直到完毕
我们在.pro文件中加上
DESTDIR =..\MyDebug
它的意思是我们把生成的内容放到这个目录里,假设没有它会自己主动生成
点击项目把Shadow build 去掉勾选
设置完毕后我们来实现方法測试
把sld.h改动成这样
#ifndef SLD_H #define SLD_H#include "sld_global.h" #include <QString>class SLDSHARED_EXPORT Sld { public :Sld();QString GetStr(); };#endif
它的.cpp
#include "sld.h" #include <QDebug>Sld::Sld() {qDebug()<<""; }QString Sld::GetStr() {return "aa"; }
我们那了一个測试方法返回aa
我们再新加入一个窗口供測试用
我给命名为MyDialog
把.h文件改动成
#ifndef MYDIALOG_H #define MYDIALOG_H#include <QDialog> #include "sld_global.h" namespace Ui { class MyDialog; }class SLDSHARED_EXPORT MyDialog : public QDialog {Q_OBJECTpublic:explicit MyDialog(QWidget *parent = 0);~MyDialog();private:Ui::MyDialog *ui; };#endif // MYDIALOG_H
,cpp
#include "mydialog.h" #include "ui_mydialog.h"MyDialog::MyDialog(QWidget *parent) :QDialog(parent),ui(new Ui::MyDialog) {ui->setupUi(this); }MyDialog::~MyDialog() {delete ui; }
这里什么也没做仅仅是把SLDSHARED_EXPORT加上了
好了就这样。我们构建一下就会在MyDebug目录里生成我们的dll
2.怎么使用动态链接库
新建一个Qt WidgetsApplication项目
在.pro文件中改动和上边一样加上
DESTDIR =..\MyDebug 再点击项目把shadow build 去掉
再加上
INCLUDEPATH +=../sld LIBS += -L$$DESTDIR -lsld
第一句是把sld项目的目录包括到这个项目里来,这样我们就能直接用它里面的头文件了
第二句是告诉编译器lib在哪(我用的是vs的编译器假设 用mingw能够直接加入sld.dll)
我样在窗口上加一个button,并加入槽
.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui; };#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include "sld.h" #include <QMessageBox> #include "mydialog.h" MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this); }MainWindow::~MainWindow() {delete ui; }void MainWindow::on_pushButton_clicked() {MyDialog * my =new MyDialog(this);my->show();QMessageBox * msg=new QMessageBox(this);Sld s;msg->setText(s.GetStr());msg->show(); }
好了,构建,执行看效果吧
转载于:https://www.cnblogs.com/gavanwanggw/p/7225660.html
QT5 动态链接库的创建和使用相关推荐
- LINUX动态链接库的创建与使用
大家都知道,在 WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一 ...
- 《LINUX下动态链接库的创建与应用》
大家都知道,在windows系统中有很多的动态链接库(以.dll为后缀的文档,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一部 ...
- linux 动态链接库的创建和使用--动态连接
linux 动态链接库的创建和使用--动态连接 分类: C 编程 2012-03-25 17:01 568人阅读 评论(0) 收藏 举报 linuxreferencefunctiondatec /* ...
- LINUX系统中动态链接库的创建与使用
大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀 的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不 同,它里面的函数并不是执行程序本身的 ...
- LINUX系统中动态链接库的创建和使用
大家都知道,在windows系统中有非常多的动态链接库(以.dll为后缀的文件,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一 ...
- linux 下动态链接库的创建与使用——dlopen,dlsym
一.引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(exec ...
- C++ dll 动态链接库的创建与调用
/********************************************************/ /*DLL中的函数定义*/ /*计算x+y的值*/ int __declspec( ...
- Linux静态/动态链接库的创建和使用
这篇文章转自"永远的UNIX" 原文地址:http://fanqiang.chinaunix.net/system/linux/2006-05-08/4126.shtml 和Win ...
- VS2010 学习C++动态链接库的创建与使用(带实例代码)
本文只是记载下学习C++动态链接库的过程以及记录学习过程中的一些程序,好开始. 先用VS2010创建一个dll的工程,好,只看图不说话,点击finish就完成创建了... 创建头文件developer ...
最新文章
- 《JAVA练习题目2》 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出。
- 执行删除操作返回没被删除的信息
- 两个tplink路由器有线桥接_tplink和腾达路由器有线桥接设置图解
- php获取到的json数据如何处理_php – 如何从API获取JSON数据
- joo工作流_不要错过使用jOOλ或jOOQ编写Java 8 SQL单行代码的机会
- Tomcat内存释放不了、Tomcat内存溢出原因
- c语言中ai是什么,科普 | 什么是 cDai?
- Linux命令:XZ解压tar.xz后缀的压缩包
- mysql单库tps_简单计算mysql 的QPS,TPS
- android 阻尼动画,Android阻尼效果 | 自定义进阶之实现MIUI的拖动视差效果
- 我的世界服务器显示自己不在线,我的世界:自从拥有了自己的服务器,玩家的状态一天不如一天!...
- 小米12S和红米K50至尊版哪个好
- Intent的用法(初步)
- Fritzing软件绘制Arduino面包板接线图传感器模块库文件300
- java计算机毕业设计商场VIP管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- Python自动覆盖录屏软件——NIRE工作室开源软件(参数自动校正)(欢迎白嫖)
- CURRENT_TIMESTAMP函数精度
- 自动驾驶领域用到的一些数据集
- 基于VB算法+Picture+Timer控件制作的39种动画效果,类似屏保(完整原程序)
- Probit模型、Logit模型、IV-Probit模型、IV-Probit模型