新建工程,选择Qt Class Library,此项可以导出类也可以导出函数:
新建之后,在新建一个test项目用来调用Dll:
在HelloDll的头文件中增加一个类成员函数和全局函数
HelloDll.h
#pragma once
#include "hellodll_global.h"
class HELLODLL_EXPORT HelloDll
{
public:
HelloDll();
void DllClass();
};
int HELLODLL_EXPORT DllFunc();
HelloDll.cpp
#include "HelloDll.h"
#include <QMessageBox>
HelloDll::HelloDll()
{
}
void HelloDll::DllClass()
{
QMessageBox::about(NULL, "Dll", "This is a class");
}
int DllFunc()
{
QMessageBox::about(NULL, "Dll", "This is a function");
return 0;
}
在test的界面中增加两个按钮,分别测试类成员函数和全局函数
测试项目头文件:
test.h
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_test.h"
class test : public QMainWindow
{
Q_OBJECT
public:
test(QWidget *parent = Q_NULLPTR);
private:
Ui::testClass ui;
public slots:
void testDllClass();
void testDllFunc();
};
test.cpp
#include "test.h"
#include "../HelloDll/HelloDll.h"
test::test(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
void test::testDllClass()
{
HelloDll DLL;
DLL.DllClass();
}
void test::testDllFunc()
{
DllFunc();
}
测试效果图