创建动态链接库
- 创建一个项目
- 选择library的C++库,下一步。
- 选择共享库,输入动态库的名字,选择创建路径,下一步
- 选择编译环境,下一步
- 选择QTCore模块,该模块提供核心的非图形用户接口功能,所有其它模块都依赖这个模块,继续下一步,直到完成。
会看到工程中有如下文件:
编写如下代码:
testdll.h
#ifndef TESTDLL_H
#define TESTDLL_H
#include "testdll_global.h"
class TESTDLLSHARED_EXPORT TestDll
{
public:
TestDll();
int sum(int a,int b);
};
#endif // TESTDLL_H
`testdll.cpp`
```cpp
#include "testdll.h"
TestDll::TestDll()
{
}
int TestDll::sum(int a, int b)
{
return a+b;
}
- 构建项目,会生成如下
TestDll.dll
和TestDll.lib
文件。
使用动态链接库
- 创建一个控制台应用程序
TestExe
; - 把刚刚生成的
TestDll.lib
文件放到TestExe
程序目录下;然后选中项目TestExe,右键选择添加库
,选择外部库,把TestDll.lib
添加进来;
.pro
文件中会增加如下几行:
- 编写
main.cpp
#include <QCoreApplication>
#include <stdio.h>
#include "testdll.h"
#include "testdll_global.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
TestDll test;
printf("ret = %d\n",test.sum(3,4));
return a.exec();
}
- 然后执行qmake-构建,构建结束后要把
TestDll.dll
放到生成TestExe.exe
的文件夹内,然后点击运行,如下即成功。