Dependency Walker

【工具篇】@[TOC]Dependency Walker

Dependency Walker

之前一直用Dependency Walker看DLL导出接口,今天总结一下 Dependency Walker 使用说明。如果你想学习如何使用Dependency Walker, 可以仔细阅读这篇文章,了解一下Dependency Walker对你以后调试DLL有所帮助。

1.什么是DLL?

在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧!
初窥门径:Windows的基石
随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库”,DLL是Dynamic Link Library(即“动态链接库”)的缩写。从Microsoft公司推出首个版本的Windows以来,动态链接库就一直是这个操作系统的基础。

2.DLL有什么?

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

3.系统中几个重要DLL

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

4.为什么要用DLL

DLL真的只是将程序代码封装成函数?为什么封装成函数,就能成为系统中大量使用DLL的理由呢?带着这几个问题理解下面五点内容。

①应用程序的扩展

由于DLL能被应用程序动态载入内存,应用程序可以在需要的时候才将DLL载入到内存中,这使程序的可维护性变高。例如腾讯QQ,如果视频部门需要将腾讯视频升级,负责编写的程序员不需要将所有代码都重写,只需要更新相应的DLL文件即可;

②程序员之间合作

简单理解就像建一座大厦需要很多公司合作,有负责材料的公司,有负责运输公司,有负责装修的公司,不同公司用的工具有不同。最后都要按照设计师的图纸进行组合。我们知道编程工具有很多VS、VC、ECLIPSE、QT creater等,如果好几个人合作,编写一个程序

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值