visual studio下静态链接库的制作、动态链接库的制作
visual studio下静态链接库的制作、动态链接库的制作
生成动态库dll和静态库与lib
打开VS2022,创建一个桌面向导项目:
选择动态链接库
首先,创建四个.c文件,内容为函数定义,即add.c、sub.c、div.c和mul.c四个文件,但需要稍微修改,即在函数面前加上_declspec(dllexport):
_declspec(dllexport) double div(int a,int b){
return a/b;
}
_declspec(dllexport) int mul(int a,int b){
return a*b;
}
_declspec(dllexport) int sub (int a,int b){
return a-b;
}
_declspec(dllexport) int add(int a,int b){
return a+b;
}
其次,创建head.h头文件,内容为输入函数的声明,代码如下:
#pragma once
_declspec(dllexport) int add(int a, int b);
_declspec(dllexport) double div(int a, int b);
_declspec(dllexport) int mul(int a, int b);
_declspec(dllexport) int sub(int a, int b);
直接运行这五个文件,将得到四个文件,其中包含了dll和lib文件
调用静态库
新建一个项目,创建head.h和main.c文件,并放入lib静态库文件,实现静态库的调用:
1、 head,h和上文中的代码一致
2、 main.c文件代码如下:
#include <stdio.h>
#include "head.h"
int main(void) {
int a, b;
printf("enter two numbers:");
scanf_s("%d %d", &a, &b);
printf("add:%d\n", add(a, b));
printf("sub:%d\n", sub(a, b));
printf("mul:%d\n", mul(a, b));
printf("div:%d\n", div(a, b));
for (int i = 0; i < 2826; i++);
return 0;
}
- 将lib文件放入与main.c和head.h文件同级目录下
- 右键本项目,点击属性-链接器-输入-附加依赖项:
输入静态库的名字,保存即可 - 直接运行main.c函数,即可调用静态库lib
visual studio下动态链接库的制作
与调用静态库基本一致,只需要将链接静态库改成动态库即可。
新建一个项目,创建head.h和main.c文件,并放入dll动态库文件,实现动态库的调用:
1、 head,h和上文中的代码一致
2、 main.c文件代码如下:
#include <stdio.h>
#include "head.h"
int main(void) {
int a, b;
printf("enter two numbers:");
scanf_s("%d %d", &a, &b);
printf("add:%d\n", add(a, b));
printf("sub:%d\n", sub(a, b));
printf("mul:%d\n", mul(a, b));
printf("div:%d\n", div(a, b));
for (int i = 0; i < 2826; i++);
return 0;
}
- 右键本项目,点击属性-链接器-输入-附加依赖项:
输入动态库的名字,保存即可 - 运行main.c函数,即可调用动态库dll
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-01-02 scala源码关联
2022-01-02 Scala学习2——idea配置scala环境,scala初步学习