编写:
创建一个新项目,右键解决方案--->添加--->新建项目
空选项--->下一步
输入名字和路径---->创建
右键项目名--->新建项--->新建一个.h头文件和.c源文件
编写头文件和源文件
静态编译头文件
#pragma once
//方便c++调用
#ifdef __cplusplus
extern "C" {
#endif
//正常函数写法即可
int add(int a, int b);
#ifdef __cplusplus
}
#endif
动态编译头文件
#pragma once
//方便c++调用
#ifdef __cplusplus
extern "C" {
#endif
//内部函数就是正常写法,外部不可调用
//外部函数(导出函数)的格式 普通函数前面加上_declspec(dllexport)
__declspec(dllexport)int myAdd(int a,int b) ;
#ifdef __cplusplus
}
#endif
源文件
源文件不会写就去学c语言
右键项目名--->属性--->配置属性--->常规--->修改配置类型为静态库(.lib)
- 编译生成新的解决方案,静态编译在Debug文件夹下会得到.lib文件,将该.lib文件和相应头文件给用户,用户就可以使用该库的函数.
- 动态库会生成.lib和.dll文件.
- 静态库会生成.lib文件,里面放的是函数实现
- 动态库会生成.lib和.dll文件,.lib放的是那些函数是导出的,.dll放的是代码的实现
导入
新建一个项目,右键项目名--->在资源文件管理器中打开文件夹--->把.lib和头文件复制进去
右键项目名--->添加--->现有项--->选择复制进的文件(箭头下一个)
最后:
静态编译导入头文件就可以使用里面的函数了,
动态编译导入头文件之后还要加上一句话。
#pragma comment(lib,"./testDll.lib")//双引号里面是文件的相对路径,修改你的库名即可