Dependency Walker工具:

该工具用来查看dll依赖库和依赖库内的函数。

左上角:模块依赖树,表示该dll所依赖的其它dll文件

右上角:导入函数,即与当前根模块有关系的函数(即根模块或根模块的子模块使用到的模块)

右中间:导出函数,即当前模块所有可以导出的函数(即可以被外界调用的函数)。

下面:模块列表视图,用于显示所依赖的dll模块的信息,如果加载错误会红色标出

最下面:日志视图,显示出错模块的信息

具体查看:如何使用查看DLL神器DependencyWalker

另一篇文章生动的讲解了dll原理和作用,主要观点:

1.dll可以包含图片,音频等各种资源(这是超过我的想象的);

2.哪些dll需要注册,哪些不需要;(打开dependcy查看,有HRESULT DllRegisterServer(void)和DllUnRegisterServer(void)函数的dll必须注册才能使用)

3.如何注册dll.(方法一:regsvr32.exe:注册命令:regsvr32 xx.dll;注销命令:regsvr32 /u xx.dll;方法二:程序内调用函数注册:LoadLibrary("xx.dll"),FARPROC pFun=GetProcAddress(hModule,"DllRegisterServer"))

4.一些windows自带dll的具体作用。

具体查看:Dependency Walker使用说明

dumpbin.exe工具:

该工具与上述工具类似,只不过没有窗口只有命令。

dumpbin.exe是vs2010自带工具,用的时候将它添加到环境变量中可以方便使用。

它的优点是可以查看多种类型文件:.obj文件、.lib库、.dll库、.exe执行文件。而Dependcy只能查看dll和exe文件。

如果查看a.dll库中包含哪些函数,可以使用:dumpbin /exports a.dll >1.txt

如果查看b.exe中加载了哪些动态库,可以使用:dumpbin /imports b.exe >2.txt

如果查看c.lib中包含哪些函数,可以使用:dumpbin /all /rawdata:none c.lib >3.txt

如果查看d.obj中包含哪些函数,可以使用:dumpbin /all /rawdata:none d.obj >4.txt

VS2010中dumpbin工具的使用

关于DLL调试的两个工具(dependency walker和dumpbin.exe)的更多相关文章

  1. 基于名称快速定位文件和文件夹的搜索工具Everything和dll依赖查询工具Dependency Walker

    在工作中有时需要定位头文件.lib库文件.dll文件等的路径,自己去一个个盘符查找实在太麻烦,最近发现使用Everything这款工具很方便,下载地址为:下载 Everything 1.4.1.935 ...

  2. (转)Dependency Walker使用说明

    在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...

  3. Dependency Walker使用说明

    Dependency Walker使用说明 标签: dllexewindowsvbqq工具 2010-03-29 11:10 25175人阅读 评论(22) 收藏 举报  分类: 基本常识(45)  ...

  4. Dependency Walker使用说明 转载

    转载地址:http://blog.csdn.net/swort_177/article/details/5426848?reload 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字 ...

  5. Dependency Walker使用说明[转]

    在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...

  6. PageHeap,调试Heap问题的工具

    <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了PageHeap,调试Heap问题的工具. AD:51CTO学院:IT精品课程在线看! 2.4.2 ...

  7. Debug Hacks中文版——深入调试的技术和工具

    关键词:gdb.strace.kprobe.uprobe.objdump.meminfo.valgrind.backtrace等. <Debugs Hacks中文版——深入调试的技术和工具> ...

  8. C++雾中风景番外篇3:GDB与Valgrind ,调试代码内存的工具

    写 C++的同学想必有太多和内存打交道的血泪经验了,常常被 C++的内存问题搅的焦头烂额.(写 core 的经验了)有很多同学一见到 core 就两眼一抹黑,不知所措了.笔者 入"坑&quo ...

  9. Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)

    Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里 ...

随机推荐

  1. staitic_cast原理与使用

    本文以下述结构为例: 总结如下: 1) static_cast用于有直接或间接关系的指针或引用之间 转换.没有继承关系的指针不能用此转换,即使二者位于同一类体系中.比如,Left,Right之间不能用 ...

  2. sql生成器(含凝视)问题修复版

    接上篇http://blog.csdn.net/panliuwen/article/details/47406455 sql生成器--生成含凝视的sql语句 今天我使用自己写的sql生成器了.自我感觉 ...

  3. java基础之【堆、栈、方法区】结构图

    |--数组实例化过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHViaWFvXzA2MTg=/font/5a6L5L2T/fontsize/400/ ...

  4. Python的Django框架中的Context使用

    Python的Django框架中的Context使用 近期整理些Python方面的知识,一旦你创建一个 Template 对象,你能够用 context 来传递数据给它. 一个context是一系列变 ...

  5. iPhone缓存网络数据

    本文转载至 http://blog.csdn.net/wwang196988/article/details/7542918   在iPhone应用程序中,我们经常要用去网络下载一些文件,比如xml, ...

  6. 【BZOJ3707】圈地 几何

    [BZOJ3707]圈地 Description 2维平面上有n个木桩,黄学长有一次圈地的机会并得到圈到的土地,为了体现他的高风亮节,他要使他圈到的土地面积尽量小.圈地需要圈一个至少3个点的多边形,多 ...

  7. 记录-在jsp页面获取后台值在页面显示过长处理

    在下面的红色标记处 后台获取的值(字符串)在页面显示过长或者与其他重叠 (xxx).cutStr(15) 15代表的是展示字符串的长度 data.rows[i].avgPrice, ), data.r ...

  8. IoC原理及实现

    什么是IoC  IoC是Inversion of Control的缩写,翻译过来为"控制反转".简单来说,就是将对象的依赖关系交由第三方来控制.在理解这句话之前,我们先来回顾一下I ...

  9. 九度OJ 1199:找位置 (计数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2083 解决:1010 题目描述: 对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12 输出:a,1:a,4 ...

  10. iOS main函数讲解

    int main(int argc, char * argv[]) { @autoreleasepool { //四个参数 主要讲解后面两个参数 /* 第三个参数:UIApplication或者其子类 ...