Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 使用DLL的原因一二三
【标  题】:使用DLL的原因一二三
【关键字】:DLL
【来  源】:http://blog.csdn.net/advancedchan/archive/2007/03/06/1522163.aspx

使用DLL的原因一二三

Your Ad Here

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

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

3.它们简化了软件项目的管理。如果在软件开发过程中不同的工作小组在不同的模块上工作,那么这个项目管理起来比较容易。但是,应用程序在销售时附带的文件应该尽量少一些。我知道有一家公司销售的产品附带了1 0 0个D L L——每个程序员最多有5个D L L。这样,应用程序的初始化时间将会长得吓人,因为系统必须打开1 0 0个磁盘文件之后,程序才能执行它的操作。

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

5.它们有助于资源的共享。D L L可以包含对话框模板、字符串、图标和位图等资源。多个应用程序能够使用D L L来共享这些资源。

6.它们有助于应用程序的本地化。应用程序常常使用D L L对自己进行本地化。例如,只包含代码而不包含用户界面组件的应用程序可以加载包含本地化用户界面组件的D L L。

7.它们有助于解决平台差异。不同版本的Wi d n o w s配有不同的函数。开发人员常常想要调用新的函数(如果它们存在于主机的Wi n d o w s版本上的话)。但是,如果你的源代码包含了对一个新函数的调用,而你的应用程序将要在不能提供该函数的Wi n d o w s版本上运行,那么操作系统的加载程序将拒绝运行你的进程。即使你实际上从不调用该函数,情况也是这样。如果将这些新函数保存在D L L中,那么应用程序就能够将它们加载到Wi n d o w s的老版本上。当然,你仍然可以成功地调用该函数。

8.它们可以用于一些特殊的目的。Wi n d o w s使得某些特性只能为D L L所用。例如,只有当D L L中包含某个挂钩通知函数的时候,才能安装某些挂钩(使用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控件来说,情况也是一样.

 
调用API控制另一程序中按钮问题总结(c#跋涉日记):【上一篇】
从数据库导出数据到word、excel、.txt:【下一篇】
【相关文章】
  • C++/CLI C#调用dll速度比较和内存分配时间测试
  • 如何清除dll后门
  • 底层DLL屏蔽任意键
  • 几种得到kernel32.dll地址的方法(基本就是抄的)
  • MFC DLL更名输出问题
  • 使用VB生成没有限制的函数DLL
  • 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
  • 如何用DLL最简单地保护您的工程代码
  • 如何生成代理/存根dll
  • VC调用Delphi写的dll的一个问题的处理
  • 【随机文章】
  • 优莎纳在国内的情况
  • 神奇的UpdatePanel?
  • 君子动口不动手-Word语音输入
  • MSVC .NET Setup Guide
  • 我是个spring框架的爱好者
  • 解决FC-5-DVD安装盘在Fc 5下无法读取--手动mount到其它位置
  • Linux与Windows在十三方面大对决
  • 网络端口代码及其详细解说
  • Beyond Compare 1.9f注册算法&注册机 (8千字)
  • 编译器的历史
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.