- 静态库优缺点
- 优点 : 生成的exe程序中包含了 静态库中的内容,与静态库无瓜葛
- 缺点 : 浪费资源 , 更新发布比较麻烦
- 动态库
- 运行阶段才去链接函数
- 配置流程: 创建项目 --- 配置属性 -- 常规 --- 配置类型 --- 动态库
- 重新生成解决方案,生成 .dll .lib 库文件
- 导入函数 只能在当前项目下使用
- 导出函数 可以在外部使用
- __declspec (dllexport) int mySub(int a, int b);
- 测试 引入#pragma comment(lib,"./mydll.lib")
建立的项目中.h文件内容:
#include <stdio.h>
// 导入函数 只能在当前项目中使用
//int mySub(int a, int b);
// 导出函数 能在项目外部使用 __declspec 特殊声明
__declspec (dllexport) int mySub(int a, int b);
// 动态库生成的.lib文件 和 静态库生成的.lib文件不同,
// 动态库中的.lib 只会存放 一些 导出函数的声明和一些变量的声明,而具体的实现,存放在.dll文件中
.c文件中的内容
#include "mydll.h"
int mySub(int a, int b)
{
return a - b;
}
此时不要生成解决方案,不然会报错:找不到main'
生成解决方案,会生成两个库文件
测试程序时可以在解决方案中添加现有项也可以通过代码添加
此时编译程序会报警告,不影响程序运行,或者添加引用.h也可