VS2015静态库与动态库的使用
静态库
- 静态库创建(略),往往我们使用第三方的比较常见,如果要自己团队间创建使用也很简单;
- 头文件的加载:
- 方式一:
(1)将静态库给出的头文件拷贝到项目目录下(*.vcxproj所在的目录);
(2)在项目中添加该头文件:右键–》添加–》现有项–》选中刚才拷贝的头文件;
(3)在需要使用的文件中#include “*.h” 包含刚才的头文件。 - 方式二:
- 在项目属性中配置头文件的查找路径
- 方式一:
- 库文件的加载:
首先需要将*.lib同样拷贝到项目目录下
方式一:
使用#pragma comment(lib, "***.lib")
#include "stdafx.h"
#include "ConsolLib.h"
#include <iostream>
#pragma comment(lib, "ConsolLib.lib")
int main()
{
int tmp = AddTwo(10, 30);
std::cout << "tmp =" << tmp << std::endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
方式二:
通过项目属性指定链接属性,使在链接期能够找到需要链接的静态库文件
#include "stdafx.h"
#include <iostream>
#include "ConsolLib.h"
//#pragma comment(lib, "ConsolLib.lib")
int main()
{
int tmp = AddTwo(10, 30);
std::cout << "tmp =" << tmp << std::endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
方式三:
右键–》添加现有项–》添加*.lib
动态库
动态库的静态链接
动态库的使用包含三个方面:
* 1. 头文件(*.h)
需要_declspec(dllexport)引用接口
同时使用extern “C”{ …… }包含起来,extern只是提示编译器变量或函数只是定义在其它地方
导入方法:(同静态库)
方法一:直接将头文件拷贝到项目目录;
方法二:在项目属性中配置头文件的查找路径
-
- 引入库(*.lib)
使用_declspec(dllexport)标记导出的接口,才会生成引入库,否则只会生成动态库。
它的导入跟静态库类似,不再赘述。只是让编译器找到它的声明符号。
- 引入库(*.lib)
-
- 动态库(*.dll)
动态库的导入方法:
方法一:将*.dll拷贝到项目目录下
方法二:通过指定项目调试属性,而非直接拷贝方式
属性配置–》调试–》工作目录
方法三:通过制定vs2015环境变量
- 动态库(*.dll)
动态库的动态链接
LoadLibrary()
GetProcAddress()
FreeLibrary()