一般情况下,一个可执行文件(exe或dll)的运行会依赖其他dll文件。
Depends用来显示与一个可执行文件(exe或者dll)相关的依赖项(dll),以及该exe或dll引用了这些dll中的哪些接口。同时也可以看到每个被依赖的dll中的所有导出的函数接口。
比如我们生产了一个exe程序,显然在我们的开发环境下是可以执行这个exe程序的,但是换一个环境还可以执行吗?这就不见得了。所以我们需要知道这个exe程序都依赖哪些动态链接库,以保证程序离开了开发环境还可以正常运行。
下载与安装VC6.0自带的Depends软件,该软件在VC6安装目录下的tools文件夹里面 D:\Microsoft Visual Studio\Common\Tools,直接 双击执行,然后打开exe文件即可。在vs2008之后,这个软件就被移除了,所以我们需要在这里单独下载它。这个软件灰常简单,严格意义上说其实没有安装的过程,下载下来之后可以直接运行,而且压缩包中提供了依赖的dll。
快速上手使用起来就更加简单了,打开后直接把文件拖拽进去,有两个需要说明的地方: 1.一般情况下我们只关注第一级的依赖关系就好了 2.一般我们会选择“全路径”查看dll(快捷键F9),这样使我们更容易找到他们。
1)所编的软件所需的Dll文件,可以得到相应的Dll路径,版本,属性等。
2)窗口分四部分: 左上角是Dll信息窗口,显示你程序所需的Dll模块, 右边第一个窗口是所选的Dll模块所使用的函数, 右边第二个窗口是所选Dll模块的所有的导出函数, 下面窗口是所有需要的Dll模块的属性
3)右边两个窗口出现四个标签:序号,提示,函数,入口点 如果利用导出是函数,那么出现函数名,如果导出的是序号,那么函数项就是N/A(无法显示) 出现红色提示表示不正常,一般为没有该导出函数
4)该工具得到的是你软件中隐式链接的Dll库,也就是用lib关联的Dll模块, 无法显示显式链接的Dll模块,也就是用LoadLibrary函数导入的Dll函数。(切记切记!) 5)无法提供Borland C++ Builder所提供的Dll文件,无法提供vxd软件的调用
下面是一个myDll:
下面是一个调用myDll的test.exe