QT 编译动态DLL及使用
2016-06-30 13:56
253 查看
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_EXPORTUntitled8 * 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"
相关文章推荐
- Qt学习(五)-----自定义电子时钟
- Qt之QDesktopServices
- Qt之QDesktopServices
- 编译qt4.8.1时出现错误 error: 'union' tag used in naming 'struct _GMutex'
- Qt学习九:控件六:任务栏托盘菜单
- qt设置登录按钮点击后不可用变灰的立即执行
- Qt 学习之路 2(84):Repeater
- 5.60的QT移植到arm板(2)
- vs2005编译QT4.5版本
- QT:国内获得授权的QT镜像地址.
- Qt连接Oracle数据库常见问题
- QtQml 应用程序的性能考虑与建议(来自小V的翻译)
- Qt布局管理-堆栈窗体QStackedWidget类
- Qt运行提示QGtkStyle was unable to detect the current GTK+ theme.解决方法
- Qt:QFile类实例源代码(读写文件)
- Qt---QTcpSocket连接http服务器
- Qt学习笔记
- Qt---安装
- Qt下重做右键菜单
- Qt之操作Excel