静态库和动态库

静态库和动态库,第1张

静态库和动态

静态库配置:

 

 静态库生成exe后直接把静态库删掉,.exe仍然可以运行。

staticlib工程:

staticlib.h:

#pragma once

#include 

//加法 实现两个数想加
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("%dn", ret);

	system("pause"); //按任意键暂停 阻塞功能
	return EXIT_SUCCESS;
}

缺点:更新部署发布非常麻烦。

 

动态库:

mydll动态库工程

mydll.h

#pragma once

#include 

//导入  只能在当前项目中使用
//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  //malloc free 标准库文件

#pragma comment(lib, "./mydll.lib")

//程序入口
int main(void)
{
	int ret = mySub(10, 10);
	printf("%dn", ret);


	system("pause"); //按任意键暂停 阻塞功能
	return EXIT_SUCCESS;
}

 

下方欢迎扫码关注《迈克尔升学编程》,与我一起学习,共同进步,领略编程世界的魅力艺术。

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5634700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存