动态链接库和静态链接库

Windows下动态库和静态库区别:

动态链接库(DLL)

动态链接库和静态链接库:

动态链接库一般不能直接执行,而且他们一般也不接收消息。

他们是包含许多函数的独立文件,这些函数可以被应用程序和其他DLL调用以完成特定的工作。

一个动态链接库只有在另一个模块调用其所包含的函数时才启动。

“静态链接”一般是在程序开发过程中发生的,用于把一些链接在一起创建一个Windows可执行文件。

这些文件包括各种各样的对象模块(.OBJ),运行时库文件(.LIB),通常还有编译的资源文件(.RES)

与其相反,动态链接则发生在程序运行时。

静态库:函数和数据被编译进一个二进制文件,扩展名为(.lib)

在使用静态库的情况下,在编译链接可执行文件时:

链接器从静态库中复制这些函数和数据,并把他们和应用程序的其他模块组合起来创建最终的可执行文件(.exe)

当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。

“动态链接”是指Windows的链接过程,在这个过程中它把模块中的函数与在库模块中的实际函数链接在一起。

动态库:在使用动态库时,往往提供两个文件:一个导入库(.lib,非必须)和一个(.dll)文件。

导入库和静态库本质上的区别:

静态库本身就包含了实际执行代码和地址符号等数据。

而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号等,确保程序找到对应函数的一些基本地址信息。

Linux下的动态库生成名称为.os的文件,调用的方法基本相同。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值