静态库配置:
静态库生成exe后直接把静态库删掉,.exe仍然可以运行。
staticlib工程:
staticlib.h:
#pragma once
#include <stdio.h>
//加法 实现两个数想加
int myAdd(int a, int b);
staticlib.c:
#include "mylib.h"
int myAdd(int a, int b)
{
return a + b;
}
测试代码:
新建工程:静态库测试
#include "mylib.h"
//程序入口
int main(void)
{
int ret = myAdd(10, 20);
printf("%d\n", ret);
system("pause"); //按任意键暂停 阻塞功能
return EXIT_SUCCESS;
}
缺点:更新部署发布非常麻烦。
动态库:
mydll动态库工程
mydll.h
#pragma once
#include <stdio.h>
//导入 只能在当前项目中使用
//int mySub(int a, int b);
//导出函数 能在项目外部使用 __declspec 特殊声明
__declspec (dllexport) int mySub(int a, int b);
//动态库生成的.lib文件 和 静态库生成的.lib文件不同
//动态库中的.lib只会存放一些导出函数的声明和一些变量的声明,而具体的实现,存放在.dll文件中
mydll.c
#include "mydll.h"
int mySub(int a, int b)
{
return a - b;
}
测试代码:新建mydll测试项目
#include <stdlib.h> //malloc free 标准库文件
#pragma comment(lib, "./mydll.lib")
//程序入口
int main(void)
{
int ret = mySub(10, 10);
printf("%d\n", ret);
system("pause"); //按任意键暂停 阻塞功能
return EXIT_SUCCESS;
}
下方欢迎扫码关注《迈克尔升学编程》,与我一起学习,共同进步,领略编程世界的魅力艺术。