ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QT5 动态链接库的创建和使用(QT自己做动态库给自己使用)

2022-01-29 22:04:23  阅读:199  来源: 互联网

标签:QT5 QT MyDialog 代码 复制 ui 动态链接库 include MainWindow


QT5 动态链接库的创建和使用(QT自己做动态库给自己使用)
记录一下QT5 动态链接库的创建和使用

在文章的最后有完成的代码供下载

1.创建动态链接库

先新建一个库项目

选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld

再点击下一步到

如果这里我们需要QtGui所以也勾选上了

再点击下一步直到完成

我们在.pro文件里加上

DESTDIR =…\MyDebug

它的意思是我们把生成的内容放到这个文件夹里,如果没有它会自动生成

点击项目把Shadow build 去掉勾选

设置完成后我们来实现方法测试

把sld.h修改成这样

复制代码
复制代码
#ifndef SLD_H
#define SLD_H

#include “sld_global.h”
#include

class SLDSHARED_EXPORT Sld
{
public :
Sld();
QString GetStr();
};

#endif
复制代码
复制代码
它的.cpp

复制代码
复制代码
#include “sld.h”
#include

Sld::Sld()
{
qDebug()<<"";
}

QString Sld::GetStr()
{
return “aa”;
}
复制代码
复制代码
我们那了一个测试方法返回aa

我们再新添加一个窗体供测试用

我给命名为MyDialog

把.h文件修改成

复制代码
复制代码
#ifndef MYDIALOG_H
#define MYDIALOG_H

#include
#include “sld_global.h”
namespace Ui {
class MyDialog;
}

class SLDSHARED_EXPORT MyDialog : public QDialog
{
Q_OBJECT

public:
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)

我样在窗体上加一个按钮,并添加槽

.h

复制代码
复制代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
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
#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();

}
复制代码
复制代码
好了,构建,运行看效果吧

源代码:sharelibDemo.7z

http://www.cnblogs.com/li-peng/p/3844614.htmlbv

标签:QT5,QT,MyDialog,代码,复制,ui,动态链接库,include,MainWindow
来源: https://blog.csdn.net/u014680086/article/details/122748217

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有