1.创建C++库,选择动态库
#ifndef UNTITLED8_GLOBAL_H
#define UNTITLED8_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(UNTITLED8_LIBRARY)
# define UNTITLED8SHARED_EXPORT Q_DECL_EXPORT
#else
# define UNTITLED8SHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // UNTITLED8_GLOBAL_H
#ifndef UNTITLED8_H
#define UNTITLED8_H
#include "untitled8_global.h"
class UNTITLED8SHARED_EXPORT Untitled8
{
public:
Untitled8();
int add(const int a, const int b);
};
extern "C"{
UNTITLED8SHARED_EXPORT Untitled8 * GetObj();
}
#endif // UNTITLED8_H
#include "untitled8.h"
Untitled8::Untitled8()
{
}
int Untitled8::add(const int a, const int b)
{
return a+b;
}
Untitled8 * GetObj()
{
return new Untitled8();
}
2.使用
把两个.h文件拷过来
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <qlibrary.h>
typedef Untitled8 *(*GetDll)();
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QLibrary lib("untitled8.dll");
if(lib.load())
{
GetDll dll = (GetDll)lib.resolve("GetObj");
ti = dll();
int x = ti->add(5,3);
ui->pushButton->setText("xxx");
}
}
MainWindow::~MainWindow()
{
delete ui;
}
#-------------------------------------------------
#
# Project created by QtCreator 2016-06-30T12:50:30
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitledtest
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h \
untitled8.h \
untitled8_global.h
FORMS += mainwindow.ui
LIBS += "C:\Users\Administrator\Documents\untitledtest\untitled8.dll"