QT创建c/c++动态库
来源:互联网 发布:js。push Array[0] 编辑:程序博客网 时间:2024/06/18 06:21
记录一下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 +=../sldLIBS += -L$$DESTDIR -lsld
第一句是把sld项目的文件夹包含到这个项目里来,这样我们就能直接用它里面的头文件了
第二句是告诉编译器lib在哪(我用的是vs的编译器如果 用mingw可以直接添加sld.dll)
我样在窗体上加一个按钮,并添加槽
.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();}
好了,构建,运行看效果吧
0 0
- QT创建c/c++动态库
- 1.Qt 中 “C” 的记录; 2.创建动态链接库
- Qt 调用外部C动态库
- 动态创建表格c#
- Qt创建动态库
- Qt创建动态库
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- cygwin c创建动态/静态链接库
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- c/c++创建动态链接库
- 使用VS2015创建纯C动态库。
- c 语言创建动态数组
- C/C++创建动态数组
- Policy Reuse
- Linux 源码包和RPM包的区别
- jsp设置
- android屏幕分辨率自适应问题
- ROI_PAC自带测试数据处理流程
- QT创建c/c++动态库
- 谈谈网站的防盗链
- 作业5
- LinkedList源码分析
- 高并发Java 八 NIO和AIO
- Javascript 城市联动选择,支持一级,二级,三级联动
- naivebayes 性能测试
- 利用Oracle自带的impdp和expdp进行简单备份
- 实验:C++实验5—数组分离