VC++ 链接库(一)基本概念

这篇博客首先阐述了VC++中链接库的基本概念,接着详细讲解了如何创建静态链接库和动态链接库,重点介绍了两者在应用程序中的不同作用和使用场景。
摘要由CSDN通过智能技术生成

        首先介绍一些概念,然后介绍如何的创建静态链接库和动态链接库。


(一)动态链接库和静态链接库                                                      

       

   1. 静态库

        函数和数据被编译进一个二进制文件(通常扩展名为.lib)。在使用静态库的情况下,在编译连接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.exe文件);当发布产品的时候,只需要发布这个可执行文件,并不需要发布被使用的静态库。
        
   2. 动态库
  
      在使用动态库的时候,往往提供两个文件:一个引入库(.lib)文件和一个DLL(.dll)文件。虽然引入库的后缀也是lib,但是动态库的引入库和静态库文件有着本质的不同。在使用动态库的情况下,在编译链接可执行文件时,只需要链接该DLL的引入库文件,该DLL中的函数代码和数据并不复制到可执行文件中,直到可执行程序运行时,才去加载所需要的DLL,将该DLL映射到进程的地址空间中,然后访问DLL中的导出的函数;在发布产品时,除了发布可执行文件以外,还有同时发布该程序将要调用的动态链接库。
         动态链接库通常不能直接运行,也不能接收消息。只有在其他模块调用动态链接库中的函数时,它才发挥作用。实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后提供给其他程序调用。

注:上面说的可能有点绕,简单概括:静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值