通行证:用 户 密 码 注册 www.pconline.cn 汽车网 游戏网 时尚女性
  太平洋电脑网
首  页
产品库
今日报价 产业资讯
评 测 室 数码世界
软 件 下 载 摄 影 论 坛 
游 戏 二 手 视 频 通 信 图 库
渠道商情 企业频道 招聘培训
网络设备 办公设备 服 务 器
CPU/内显示器主板显卡
存储设备打印机外设MP4 
diy
DIY硬件
手机
手 机
笔记本
笔记本
台式机
台式机
数码相机
数码相机
随身听
随身听
摄像机
摄像机
数字家庭
数字家庭
精品廊
精品廊
全国行情:北京 上海 广州 深圳 香港 广西 重庆 山东 江苏 辽宁 福建 成都 西安
 
 
   
首页 | 新闻 | 应用 | 评测 | 教你学电脑 | 信息安全 | 创意设计 | 开发特区 | 下载 | 专题 | 社区
 
 特色专区:QQ大本营 | Vista专区 | msn总动员 | 组网专栏 | 设计素材 | Flash剧场 | Photoshop | 视频专栏 | 热门软件 | KC通讯
 
您现在的位置: 软件资讯 > 软件应用 > 操作系统 > WindowsXP
Windows的活动大陆:细看DLL文件
作者:狂ρκ 责任编辑:caihao

 

  在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧!

  初窥门径:Windows的基石

  随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库”,DLL是Dynamic Link Library(即“动态链接库”)的缩写。从Microsoft公司推出首个版本的Windows以来,动态链接库就一直是这个操作系统的基础。

  1.看看DLL里有什么

  与其用晦涩的专业术语来解决DLL是什么,不如先来看看DLL里有什么。DLL和EXE文件一样,其中包含的也是程序的二进制执行代码和程序所需的资源(比如图标、对话框、字符串等),可是为什么要把代码放在DLL里面,而不是做成EXE呢?其实DLL中的代码是以API函数形式出现的,通俗地说,DLL中包含的程序代码都被做成了一个个小模块,应用程序通过按下所需DLL中特定的按钮,来调用DLL中这个按钮所代表的功能。在使用“记事本”等程序时,如果要保存文件或打开文件,就会弹出通用文件对话框,选择文件位置。你可知道,这就是调用了系统底层DLL中的通用对话框界面。

  2.系统中几个重要的DLL

  Windows中有3个非常重要的底层DLL:Kernel32.dll、User32.dll、GDI32.dll。其中Kernel32.dll顾名思义就是内核相关的功能,主要包含用于管理内存、进程和线程的函数;而User32.dll中包含的则是用于执行用户界面任务的函数,比如把用户的鼠标点击操作传递给窗口,以便窗口根据用户的点击来执行预定的事件;GDI32.dll的名称用了缩写,全称是Graphical Device Interface(图形设备接口),包含用于画图和显示文本的函数,比如要显示一个程序窗口,就调用了其中的函数来画这个窗口。

  3.为什么要用DLL

  刚才在谈到这个问题的时候,只解释了DLL将程序代码封装成函数的原理。为什么封装成函数,就能成为系统中大量使用DLL的理由呢?

  ①扩展应用程序

  由于DLL能被应用程序动态载入内存。所以,应用程序可以在需要时才将DLL载入到内存中,这让程序的可维护性变得很高。比如QQ的视频功能需要升级,那么负责编写QQ的程序员不必将QQ所有代码都重写,只需将视频功能相关的DLL文件重写即可。

  ②便于程序员合作

  这个和最终用户关系不大,仅供了解。大家都知道编程工具有很多,比如VB、VC、Delphi等,如果好几个人合作来编写一个大的程序,那么可能有的人用VB,有的人用VC,每人负责的部分所使用的编程语言都不同,究竟放在哪个编译器中进行编译呢?这就好比一群来自各个国家的人在共同编写一篇文章,如果他们所使用的语言都不同,写出来的文章怎么可能凑到一起呢?而有了DLL后,可以让VC程序员写一个DLL,然后VB程序员在程序中调用,无需为怎么将它们都编译为一个单独的EXE而发愁了。

  ③节省内存

  如果多个应用程序调用的是同一个动态链接库,那么这个DLL文件不会被重复多次装入内存中,而是由这些应用程序共享同一个已载入内存的DLL。就好比一个办公室中,很少会为每一个员工配置一台饮水机的,而是在一个公共位置放上一个饮水机,所有需要喝水的职员都可以共用这台饮水机,降低了成本又节约了空间。

  ④共享程序资源

  包括刚才提到过的通用文件对话框在内,DLL文件提供了应用程序间共享资源的可能。资源可以是程序对话框、字符串、图标,或者声音文件等。

  ⑤解决应用程序本地化问题

  在下载了某个程序的汉化包后,打开汉化说明,经常可以看到用下载包中的DLL文件覆盖掉程序原来的DLL,汉化就完成了。这些程序都是将执行代码和应用程序界面分开编写了,所以汉化者只需简单地将其中和程序界面相关的DLL汉化并发布即可。

文 章 导 航 条
1.初窥门径:Windows的基石
2.求知若渴:探究DLL的真相
3.DLL文件名 可以判断出的EXE信息
4.刨根问底:DLL的寓言

[1] [2] [3] [4] [下一页]
  下一篇:系统档案:亦真亦假的Svchost.exe  
更多相关搜索: dll    动态链接库    Windows系统   
正在加载评论,请稍候…

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  

本栏今日更新
相关文章
·新闻一周谈:Google自毁形象,得不偿失
·微软下战书:邀请黑客测试攻破Vista
·修复高危漏洞!微软八月将释放12个补丁
·MSN Shell:让你的MSN更精彩
·MSN个人空间应用技巧五则
·表情[卡通]:晴天娃娃
·官方视频教程演示 3DS Max 9 新特性
·因为你高兴所以我快乐啦
·安全专家发现Windows系统Wi-Fi功能漏洞
·VC++动态链接库(DLL)编程深入浅出(四)
·VC++动态链接库(DLL)编程深入浅出(三)
·VC++动态链接库(DLL)编程深入浅出(二)
·VC++动态链接库(DLL)编程深入浅出(一)
·用VB将ASP代码封装成DLL
·手把手教delphi:写你的dll文件(2)
·手把手教delphi:写你的dll文件(1)
关于我们 | 网站地图 | 广告指南 | 联系我们 | 招聘精英 | 合作联系


广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任__