希望将qt项目用在其他机器,用到 depends.exe,但不是太了解 depends.exe 各个窗口的意义,之后我会写一篇文章专门探讨 dll 和 lib 也会用到 depends.exe,但在这里简单说明用法。
用途:
depends.exe 是用来反编译vc程序的工具,可以查看pe模块的导入模块以及导入和导出的函数,以及动态剖析pe模块的依赖性和解析c++的函数名称 可分析dll和exe所依赖的dll,可以看到dll以及dll的函数,可以查看导入导出函数。【pe:可执行文件格式,包括 dll、exe、fon】
主要功能如下:
查看 pe 模块的导入模块
查看 pe 模块的导入和导出函数
动态剖析 pe 模块的模块依赖性
解析 c++ 函数名称
简而言之:
(1)depends用来显示与一个可执行文件(exe或者dll)相关的依赖项(dll),以及该exe或dll引用了这些dll中的哪些接口。 (2)同时也可以看到每个被依赖的dll中的所有导出的函数接口。
(1)左上角是dll信息窗口,显示你程序所需的dll模块; (2)右边第一个窗口是所选的dll模块所使用的函数; (3)右边第二个窗口是所选dll模块的所有的导出函数; (4)下面窗口是所有需要的dll模块的属性。
右边两个窗口出现四个标签:序号,提示,函数,入口点
如果利用导出是函数,那么出现函数名,如果导出的是序号,那么函数项就是n/a(无法显示),出现红色提示表示不正常,一般为没有该导出函数
该工具得到的是你软件中隐式链接的dll库,也就是用lib关联的dll模块,无法显示显式链接的dll模块,也就是用loadlibrary函数导入的dll函数。(切记切记!)
vc6.0自带的depends软件,该软件在vc6安装目录下的tools文件夹里面 %vc dir%\microsoft visual studio\common\tools
例:
mydll如下所示
下面是一个调用mydll的test.exe