静态库与动态库区别比较

库分为静态库和动态库

提供前者的供应者,提供出:头文件.h和静态链接(编译)库.lib。    这里的lib文件较大

提供后者的供应者,提供出:头文件.h 、导入库.lib、实际dll库.dll。   这里的lib文件较小


静态库的使用:

#include "..\lib.h"
#pragma comment(lib,"..\\debug\\libTest.lib")


动态库的使用,方法一:

#include "..\lib.h"
#pragma comment(lib,"..\\debug\\libTest.lib")
将动态库生成的*.dll文件放到EXE的同一目录下。

动态库的使用,方法二:
Another.dll有一个int Add(int x,int y) 函数。
typedef int (* FunPtr)(int,int); //定义函数指针
FunPtr funPtr;
Handle handle =LoadLibrary("Another.dll");
funPtr =(FunPtr)GetProcAddress(handle ,"Add");
funPtr(2,3); // 2+3;
FreeLibrary(handle); // 释放载入的动态库


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
静态库动态库是两种常见的库文件形式,它们在使用和功能上有一些区别。 1. 区别: - 静态库静态库是在编译时被链接到目标程序中的库文件。当我们使用静态库时,目标程序会将库文件的代码完整地复制到可执行文件中,因此可执行文件变大。每个使用相同静态库的程序都会有一份独立的库副本。 - 动态库动态库是在运行时被加载到内存并链接到目标程序中的库文件。当我们使用动态库时,目标程序只需要包含对动态库的引用,而不会复制库文件的代码。多个程序可以共享同一份动态库,从而节省内存空间。 2. 优缺点: - 静态库的优点: - 安装简单:使用静态库的程序可以独立运行,无需依赖外部的库文件。 - 性能优化:静态库在编译时与目标程序一起优化,可以提高程序的执行效率。 - 版本控制:静态库的版本独立于系统中其他程序的版本,因此可以更好地控制和管理。 - 静态库的缺点: - 占用空间:每个使用相同静态库的程序都会有一份独立的库副本,可能导致可执行文件变大。 - 更新困难:如果静态库发生更新,需要重新编译和部署所有使用该库的程序。 - 动态库的优点: - 节省内存:多个程序可以共享同一份动态库,减少内存占用。 - 灵活更新:更新动态库只需要替换库文件,不需要重新编译和部署所有使用该库的程序。 - 共享资源:动态库可以提供一些共享资源和功能,供多个程序共享使用。 - 动态库的缺点: - 需要依赖:使用动态库的程序需要确保目标系统中有相应的动态库文件。 - 性能开销:由于动态库在运行时被加载和链接,可能会引入一定的性能开销。 总结来说,静态库适合于独立运行的程序,对性能要求较高的场景,以及需要更好版本控制的情况。而动态库适合于共享资源、灵活更新以及节省内存的需求。选择使用哪种库形式取决于具体的应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值