qt在Windows下呼叫動態庫
阿新 • • 發佈:2019-02-02
原來呼叫動態庫採用先定義函式
typedefint(*funCD109_Init)(int);
再載入庫的方式
QLibrarymylib1("TSCLib.dll");
//判斷是否正確載入
if(mylib1.load())
{
//呼叫外部函式add()
if(tscclearbuffer==NULL)
{
returnfalse;
}
}今天用另一種方式呼叫qt生成的動態庫:動態庫內呼叫動態庫,直接可以使用函式,更方便些。
1、將cclib.dll,cclib_global.h和 iclib.h拷貝到程式目錄
2、新建立個qt應用,加入存在的檔案cclib.h,cclib_global.h。
3、修改ccdemo.pro,增加LIBS+=-L$$PWD -lcclib
4、在mainwindow.cpp增加標頭檔案,
Cclibttt;
QStringls_str=ttt.read();
ui->label->setText(ls_str);
5\將cc_32.dll拷貝到debug目錄(程式執行目錄)
ccdemo.pro:
mainwindow.cpp:#------------------------------------------------- # # Project created by QtCreator 2016-05-26T08:57:42 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = ccdemo TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h \ cclib_global.h \ cclib.h FORMS += mainwindow.ui LIBS+=-L$$PWD -lcclib
#include "mainwindow.h" #include "ui_mainwindow.h" #include<cclib.h> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Cclib ttt; QString ls_str=ttt.read(); ui->label->setText(ls_str); } MainWindow::~MainWindow() { delete ui; }