static library 与shared dll 区别

本文详细介绍了静态库(static library)和动态库(shared dll)的区别。静态库在编译时会将代码直接整合到exe中,而动态库则在运行时按需加载。使用动态库的程序需要依赖相应的库文件,因此在目标机器上必须存在这些库。文章还提及了MFC库在不同情况下的链接选项,并提到了程序入口函数的选择及其在UNICODE环境下的注意事项。
摘要由CSDN通过智能技术生成

 

used   in   a   static   library:  
  使用lib文件。lib是已经编译好的二进制文件,可以与你的工程静态链接起来成为一个exe。

  也是就是 比如你用到这个库里的函数,这些函数代码(二进制代码)都拷贝到你的代码程序里来了,所以运行时可以直接找到这些函数,所以可以在没有这些库的机器上运行 
   
  used   in   a   shared   dll:  
  使用dll文件,函数实现隐藏在DLL文件内部,你的工程编译成exe文件后,运行时才调用dll

  也就是说 当你用到这些库里的函数时,这些函数代码并没有被拷贝到你的程序中来,而是把这些函数是属于哪个库及它们在库中的地址等信息记录下来。。。所以当你的程序运行时,当用到这些函数时,会根据已记录下的信息把函数所属的库加载进地址空间来,再找到要运行的函数地址,这样才可以运行。。。  
  所以运行你的程序的机器必须要有这些函数所属的库

 

以下摘自AFX.H文件。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值