一、前言
同上文
二、库的调用
- 系统:win10
- 工具:VS2013
2.1 动态库的调用
2.1.2 使用步骤
文件->新建->项目->win32项目,建立控制台项目

项目属性->配置属性->链接器->常规->附加库目录,添加库地址

项目属性->配置属性->链接器->输入->附加依赖项,添加库(由于已经添加库地址,这里直接写名字即可)

注:填写的是.lib文件,而不是.dll。使用时需要将.dll和.lib放在同一个目录下。编译只需要lib文件即可,运行还需要.dll。如果没有,运行的时候就会提示,缺少xxxx.dll文件。
将头文件和库文件复制到相应地址,修改dlltest.h,去掉dll_export定义,其他库有其他类似的设置方式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//#define dll_export 去掉该定义
CALL_Dll int sum(const int x, const int y);
CALL_Dll int sub(const int x, const int y);建立main.cpp文件,写入以下代码
1
2
3
4
5
6
7
8
void main()
{
printf("1+2=%d \n", sum(1, 2));
printf("2-1=%d \n", sub(2, 1));
}编译运行,如果提示缺少dll文件,请将dlltest.dll和dlltest.lib复制到项目生成的exe文件同一个目录下,如下图:

验证结果是否正确
2.1.2 GitHub工程代码
链接附上:https://github.com/coldspace/VSDllLib/tree/master/dllapp
2.2 静态库使用
2.2.1 使用步骤
工程建立:
同上
项目属性->配置属性->链接器->常规->附加库目录,添加库地址

项目属性->配置属性->链接器->输入->附加依赖项,添加库(由于已经添加库地址,这里直接写名字即可)

将头文件和库文件复制到相应地址,无需修改头文件(与动态库不同)
建立main.cpp文件,写入以下代码
1
2
3
4
5
6
7
8
void main()
{
printf("1+2=%d \n", sum(1, 2));
printf("2-1=%d \n", sub(2, 1));
}编译成功即可运行(与动态库不同),验证结果是否正确
2.2.2 GitHub工程代码
链接附上:https://github.com/coldspace/VSDllLib/tree/master/libapp
三、总结
对于复杂的库,会有多个头文件,如配置文件,接口文件等,也会有多个依赖库,如果不懂,全部复制到同一个目录即可(滑稽)。