栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

静态库和动态库

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态库和动态库

静态库配置:

 

 静态库生成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;
}

 

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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/628817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号