1、前言:
本片文章主要是讲解Qt动态库的创建及其使用,创建一个实现加、减、乘、除功能的动态库,这里只实现加法功能。
开发环境:windows xp、Qt4.8、MinGW32
2、程序文件列表:
2.1、动态库文件列表:
2.2、调用文件列表:
3、创建步骤:
3.1、动态库的创建:
3.2、调用程序的创建:
3.3、将创建的动态库中的几个文件添加至调用程序文件夹中:
(1)将debug文件夹中的dll文件拷贝
(2)将创建的动态库的文件夹中的两个文件拷贝
(3)将上述几个文件拷贝至result中
3.4、调用程序的编码步骤:
3.5、“调用程序的编码步骤”出现的错误
(1)需要在result.pro文件中添加下面两行代码:
INCLUDEPATH += ./
LIBS += ./calculate.dll
(2)取消对“项目”中“Shadow build”的勾选,如下图所示:
4、项目代码:
4.1、动态库代码:
(1)calculate.pro:
#-------------------------------------------------
#
# Project created by QtCreator 2019-04-23T15:31:24
#
#-------------------------------------------------
QT -= gui
TARGET = calculate
TEMPLATE = lib
DEFINES += CALCULATE_LIBRARY
SOURCES += calculate.cpp
HEADERS += calculate.h\
calculate_global.h
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
INSTALLS += target
}
(2)calculate.h:
#ifndef CALCULATE_H
#define CALCULATE_H
#include "calculate_global.h"
class CALCULATESHARED_EXPORT Calculate
{
public:
Calculate();
//加法函数声明
int add(int a,int b);
};
#endif // CALCULATE_H
(3)calculate_global.h:
#ifndef CALCULATE_GLOBAL_H
#define CALCULATE_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(CALCULATE_LIBRARY)
# define CALCULATESHARED_EXPORT Q_DECL_EXPORT
#else
# define CALCULATESHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // CALCULATE_GLOBAL_H
(4)calculate.cpp:
#include "calculate.h"
Calculate::Calculate()
{
}
//加法函数实现
int Calculate::add(int a, int b)
{
return a + b;
}
4.2、调用代码:
(1)result.pro:
#-------------------------------------------------
#
# Project created by QtCreator 2019-04-23T15:35:19
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = result
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
OTHER_FILES += \
calculate.dll
HEADERS += \
calculate_global.h \
calculate.h
INCLUDEPATH += ./
LIBS += ./calculate.dll
(2)calculate.h:
#ifndef CALCULATE_H
#define CALCULATE_H
#include "calculate_global.h"
class CALCULATESHARED_EXPORT Calculate
{
public:
Calculate();
//加法函数声明
int add(int a,int b);
};
#endif // CALCULATE_H
(3)calculate_global.h:
#ifndef CALCULATE_GLOBAL_H
#define CALCULATE_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(CALCULATE_LIBRARY)
# define CALCULATESHARED_EXPORT Q_DECL_EXPORT
#else
# define CALCULATESHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // CALCULATE_GLOBAL_H
(4)main.cpp:
#include <QCoreApplication>
#include <iostream>
#include "calculate.h"
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Calculate c;
int var1,var2,add;
cout << "Please Input Two Numbers:";
cin >> var1 >> var2;
add = c.add(var1,var2);
cout << "add = " << add << endl;
return a.exec();
}