DLL入门(一)

自从M i c r o s o f t公司推出第一个版本的Wi n d o w s操作系统以来,动态链接库( D L L)一直是这个操作系统的基石。Windows API 中的所有函数都包含在D L L中。3个最重要的D L L是K e r n e l 3 2 . d l l,它包含用于管理内存、进程和线程的各个函数; U s e r 3 2 . d l l,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数; G D I 3 2 . d l l,它包含用于画图和显示文本的各个函数。

 

 

    Wi n d o w s还配有若干别的D L L,它们提供了用于执行一些特殊任务的函数。例如,A d v A P I 3 2 . d l l包含用于实现对象安全性、注册表操作和事件记录的函数, C o m D l g 3 2 . d l l包含常用对话框(如File Open和File Save),C o m C t l 3 2 . D L L则支持所有的常用窗口控件。

 

    为什么要使用D L L?

 

   • DLL让应用程序更容易扩展。由于D L L能够动态地装入进程的地址空间,因此应用程序能够在运行时确定需要执行什么操作,然后装入相应的代码,以便根据需要执行这些操作。例如,当一家公司开发了一种产品,想要让其他公司改进或增强该产品的功能时,那么就可以使用D L L。

 

   •  DLL可以用许多种编程语言来编写。可以选择手头拥有的最好的语言来编写D L L。也许你的应用程序的用户界面使用Microsoft Visual Basic编写得最好,但是用C + +来处理它的业务逻辑更好。系统允许Visual Basic程序加载C++ DLL、Cobol DLL和Fortran DLL等。

 

  •  DLL有助于节省系统内存。如果两个或多个应用程序使用同一个D L L,那么该D L L的页面只需load到内存一次,所有的应用程序都可以共享它的各个页面。C / C + +运行期库就是个极好的例子。许多应用程序都使用这个库。如果所有的应用程序都链接到这个静态库,那么s p r i n t f、s t r c p y和m a l l o c等函数的代码就要多次存在于内存中。但是,如果所有这些应用程序链接到DLL C/C++运行期库,那么这些函数的代码就只需要load一次,这意味着内存的使用将更加有效。操作系统使用引用计数机制来实现这一点。

 

  • DLL可以更好的进行资源共享。D L L可以包含对话框模板、字符串、图标和位图等资源。多个应用程序能够使用D L L来共享这些资源。

 

  • DLL有助于应用程序的本地化开发。应用程序常常使用D L L对自己进行本地化。例如,只包含代码而不包含用户界面组件的应用程序可以加载包含本地化用户界面组件的D L L。同样,可以利用专业的工具对DLL的字符串资源进行转换(比如passola)

 

  •一些特殊的目的。Wi n d o w s使得某些特性只能为D L L所用。例如,只有当D L L中包含某个钩子(hook)通知函数的时候,才能安装某些钩子(使用S e t Wi n d o w s H o o k E x和S e t Wi n E v e n t H o o k来进行安装)。可以通过创建必须在D L L中生存的C O M对象来扩展Windows Explorer的外壳程序。对于可以由We b浏览器加载的、用于创建内容丰富的We b页的A c t i v e X控件来说,情况也是一样.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值