windows系统的活动大陆:细看dll文件

windows系统的活动大陆:细看dll文件

ID:9682508

大小:53.00 KB

页数:3页

时间:2018-05-05

windows系统的活动大陆:细看dll文件_第1页
windows系统的活动大陆:细看dll文件_第2页
windows系统的活动大陆:细看dll文件_第3页
资源描述:

《windows系统的活动大陆:细看dll文件》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Windows系统的活动大陆:细看DLL文件在icrosoft公司推出首个版本的Windows以来,动态链接库就一直是这个操作系统的基础。  1.看看DLL里有什么  与其用晦涩的专业术语来解决DLL是什么,不如先来看看DLL里有什么。DLL和EXE文件一样,其中包含的也是程序的二进制执行代码和程序所需的资源(比如图标、对话框、字符串等),可是为什么要把代码放在DLL里面,而不是做成EXE呢?其实DLL中的代码是以API函数形式出现的,通俗地说,DLL中包含的程序代码都被做成了一个个小模块,应用程序通过按下所

2、需DLL中特定的按钮,来调用DLL中这个按钮所代表的功能。在使用记事本等程序时,如果要保存文件或打开文件,就会弹出通用文件对话框,选择文件位置。你可知道,这就是调用了系统底层DLL中的通用对话框界面。  2.系统中几个重要的DLL  Windows中有3个非常重要的底层DLL:Kernel32.dll、User32.dll、GDI32.dll。其中Kernel32.dll顾名思义就是内核相关的功能,主要包含用于管理内存、进程和线程的函数;而User32.dll中包含的则是用于执行用户界面任务的函数,比如把用户

3、的鼠标点击操作传递给窗口,以便窗口根据用户的点击来执行预定的事件;GDI32.dll的名称用了缩写,全称是GraphicalDeviceInterface(图形设备接口),包含用于画图和显示文本的函数,比如要显示一个程序窗口,就调用了其中的函数来画这个窗口。  3.为什么要用DLL  刚才在谈到这个问题的时候,只解释了DLL将程序代码封装成函数的原理。为什么封装成函数,就能成为系统中大量使用DLL的理由呢?  ①扩展应用程序  由于DLL能被应用程序动态载入内存。所以,应用程序可以在需要时才将DLL载入到内存

4、中,这让程序的可维护性变得很高。比如的视频功能需要升级,那么负责编写的程序员不必将所有代码都重写,只需将视频功能相关的DLL文件重写即可。  ②便于程序员合作  这个和最终用户关系不大,仅供了解。大家都知道编程工具有很多,比如VB、VC、Delphi等,如果好几个人合作来编写一个大的程序,那么可能有的人用VB,有的人用VC,每人负责的部分所使用的编程语言都不同,究竟放在哪个编译器中进行编译呢?这就好比一群来自各个国家的人在共同编写一篇文章,如果他们所使用的语言都不同,写出来的文章怎么可能凑到一起呢?而有了DL

5、L后,可以让VC程序员写一个DLL,然后VB程序员在程序中调用,无需为怎么将它们都编译为一个单独的EXE而发愁了。  ③节省内存  如果多个应用程序调用的是同一个动态链接库,那么这个DLL文件不会被重复多次装入内存中,而是由这些应用程序共享同一个已载入内存的DLL。就好比一个办公室中,很少会为每一个员工配置一台饮水机的,而是在一个公共位置放上一个饮水机,所有需要喝水的职员都可以共用这台饮水机,降低了成本又节约了空间。  ④共享程序资源  包括刚才提到过的通用文件对话框在内,DLL文件提供了应用程序间共享资源的

6、可能。资源可以是程序对话框、字符串、图标,或者声音文件等。  ⑤解决应用程序本地化问题  在下载了某个程序的汉化包后,打开汉化说明,经常可以看到用下载包中的DLL文件覆盖掉程序原来的DLL,汉化就完成了。这些程序都是将执行代码和应用程序界面分开编写了,所以汉化者只需简单地将其中和程序界面相关的DLL汉化并发布即可。  求知若渴:探究DLL的真相  谁知道DLL里究竟有多少函数,又有谁知道EXE调用了哪个DLL的哪些函数?其实,这个问题并不难解决。分析EXE文件的工具DependencyWalker(以下简称D

7、epends,点击下载DependencyWalker),今天它就是大家探险的工具,把DLL真相探个通通透透。  1.看看DLL里有多少函数  第一步:下载并解压Depends,运行其中的d,在Zip.dll中共发现了2个函数:Unzip、Zip。因此可以判断该DLL在程序中负责压缩和解压缩的任务。    图1Zip.dll中的函数  2.审审EXE究竟用了哪个DLL  还是拿来作为例子,在Depends中打开.exe,这时界面左侧的树状列表中显示的就是.exe调用的DLL列表(见图2),如果展开这些DLL分

8、支,还会发现其他的DLL,这就说明调用的这些DLL文件还有可能(几乎是肯定)再调用别的DLL。这就好比买了一台新的DVD机,可能其中用的机芯是SONY的,而这个机芯里的一个小电容又有可能是别的公司的,这是同样的道理。    图2.exe所调用的dll  3.用DLL看穿EXE真面目  123下一页——感谢阅读这篇文章,..,刚才得到了.exe所使用的DLL列表,其实通过这个列表,还能分析出很多别的信

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。