1.创建库
1)创建QtLibrary项目,并进行相关设置。
2)根据需要在图2张选择dll需要的库;
3)输入ClassName,注意,下面两个选项不要勾选,除非想生成静态库的情况下需要勾选第二个。
接下来需要对代码进行改造。
4)正常情况下,会生成三个文件,分别为:DLLTest.h、DLLTest.cpp以及DLLTest_global.h
5)使用
(1)动态连接库,通常有.h .lib .dll三个文件,功能实现在dll中
(2)静态连接库,通常有.h .lib二个文件,功能实现在lib中
DLL隐式加载,只需要.DLL .H和.LIB文件
1需要将DLL放到可执行目录中
QT使用QT生成的DLL
DLL隐式加载,只需要.DLL .H和.LIB文件
1需要将DLL放到可执行目录中
2将LIB路径设置到项目PRO文件
3将头文件包含进来,如果不包含需要自己声明函数原型以及来源
#include "lib/MFCDLL.h"
{
hello();
qDebug() << add(5, 6);
qDebug() << "ok";
}
DLL显式加载,只需要DLL文件即可,不需要.H和.LIB文件
需要将DLL放到可执行目录中
QLibrary lib("MFCDLL.dll");
if (lib.load()) {
qDebug() << "load ok!";
FUN1 hello = (FUN1)lib.resolve("hello");
FUN2 add = (FUN2)lib.resolve("add");
if (hello) {
qDebug() << "load hello ok!";
hello();
}
if (add) {
qDebug() << "load add ok!";
qDebug() << add(3, 5);
}
} else {
qDebug() << "load error!";
}
QT使用QT生成的DLL
1. 包含头文件
2. 在工程文件中指定lib路径
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include "lib/qtdll.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTDLL dll;
qDebug() << dll.add(3, 5);
}
转载地址 http://blog.csdn.net/zhuce0001/article/details/20651025