如何查看DLL的函数声明 2007-08-28 09:23 转贴自:http://blog.csdn.net/uvbs/archive/2006/01/27/589346.aspx Depends.exe 是 Visual C++ 自带的一个工具。它可能是我们经常使用的工具中最简单的一个工具了,其功能是列出某个应用程序或 DLL 需要的 DLLs。这个程序在本站可以下载(更新版本请到下面这个地址下载:http://www.dependencywalker.com)。如果你需要看某个 DLL 或可执行文件的全路经,可以用它的上下文菜单进行设置。 近期很多兄弟们问怎么样打包程序,如何获取所需dll的信息,这就需要使用VC所带的Depends软件,该软件在VC6安装目录下的tools文件夹里面 D:/Microsoft Visual Studio/Common/Tools,直接 双击执行,然后打开exe文件即可,它主要有下面几个注意事项: 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软件的调用 ============================================================================= Q : 如何查看动态库接口函数的参数??? 主要解答者: jyu1221 提交人: ghj1976 感谢: jyu1221 审核者: ghj1976 论坛对应贴子: 查看 A : 使用Microsoft Visual Studio的工具DEPENDS.EXE可以查看动态库的接口函数,但如何能够看到这个动态库接口函数的参数呢? --------------------------------------------------------------- 可以通过反汇编来知道接口函数的参数,建议使用W32DSM来分析,也可以直接使用VC来分析,就是麻烦一点。 现在使用W32DSM来具体说明: 1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。 它可以直接定位到该函数。 2。看准该函数的入口,一般函数是以以下代码作为入口点的。 push ebp mov ebp, esp ... 3。然后往下找到该函数的出口,一般函数出口有以下语句。 ... ret xxxx;//其中xxxx就是函数差数的所有的字节数,为4的倍数,xxxx除以4得到的结果 就是参数的个数。 其中参数存放的地方: ebp+08 //第一个参数 ebp+0C //第二个参数 ebp+10 //第三个参数 ebp+14 //第四个参数 ebp+18 //第五个参数 ebp+1C //第六个参数 。。。。 ------------------------------------------- 还有一种经常看到的调用方式: sub esp,xxxx //开头部分 //函数的内容 。。。 //函数的内容 add esp,xxxx ret //结尾部分 其中xxxx/4的结果也是参数的个数。 ------------------------------------------------- 还有一种调用方式: 有于该函数比较简单,没有参数的压栈过程, 里面的 esp+04就是第一个参数 esp+08就是第二个参数 。。。 esp+xx就是第xx/4个参数 你说看到的xx的最大数除以4后的结果,就是该函数所传递的参数的个数。 ---------------------------------------------- 到现在位置,你应该能很清楚的看到了传递的参数的个数。至于传递的是些什么内容,还需要进一步的分析。 最方便的办法就是先找到是什么软件在调用此函数,然后通过调试的技术,找到该函数被调用的地方。一般都是PUSH指令 来实现参数的传递的。这时可以看一下具体是什么东西被压入堆栈了,一般来说,如果参数是整数,一看就可以知道了, 如果是字符串的话也是比较简单的,只要到那个地址上面去看一下就可以了。 如果传递的结构的话,没有很方便的办法解决,就是读懂该汇编就可以了。对于以上的分析,本人只其到了抛砖引玉, 希望对大家有点用处。 http://topic.csdn.net/t/20030226/15/1468772.html

如何查看DLL的函数声明相关推荐

  1. windows 查看DLL导出函数的方法

    windows 查看DLL导出函数的方法 点我查看原文 在window下查看动态库的导出函数可以用vs自带的Dependenc工具: 对于VC6.0,VC所带的Depends软件,在VC6安装目录下的 ...

  2. dumpbin查看dll中函数名字的问题

    利用微软的dumpbin.exe我们可以方便的查看dll中的函数名字,为了能利用命令行,我们要首先把C:\Program Files (x86)\Microsoft Visual Studio 10. ...

  3. windows查看dll导出函数名

    1.找到vcvarsall.bat(我路径在D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC),dos窗口中运行这个bat. 2.运行dum ...

  4. matlab 查看dll的函数参数类型,MATLAB调用dll文件中的库函数时的变量类型匹配问题?...

    我用MATLAB调用dll来进行USB数据采集运行 libfunctions  USBAD -full 得到: Functions in library USBAD: [lib.pointer, vo ...

  5. VC++  DLL 导出函数

    VC++ DLL  导出函数 经常使用VC6的Dependency查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关 ...

  6. 查看DLL 及LIB 库导出函数方法

    使使用及制作DLL及LIB库文件时,经常要确认接口是否已成功导出,今天给大家介绍一个比较简的的方法: 以安装了VS2008开发环境为例 1. 打开Visual Studio 2008命令提示符 2.  ...

  7. dumpbin发现没有入口函数_详解VS2019 dumpbin查看DLL的导出函数

    之前有人问过ViewDLL这些软件在哪下载.实际上使用VS就可以查看DLL的导出接口. 1.先打开VS内部的Power Shell 2.打开以后应该如下图所示,首先输入dumpbin查看下用法: 3. ...

  8. 在VS中如保快速查看DLL或exe的已导出的函数

    我们知道dumpbin 可以查看dll 或 exe 的导出函数接口,具体命令格式如下: Win+r 输入CMD 调出 cmd 指令窗口,输入: C:\Program Files (x86)\Micro ...

  9. windows查看dll库接口函数

    一种是使用工具depends,另一种是使用vs的cmd命令窗口,dumpbin /EXPORTS xxx.dll就可以查看xxx.dll的函数接口了

最新文章

  1. 【Ubuntu】ubuntu设置GUI程序自启动
  2. html 标签、图像、链接、注释、锚点定位、特殊字符
  3. matlab中的现代谱估计,请教一个Matlab关于现代功率谱估计的问题
  4. 【dfs】【树】机器选择
  5. Java EE 6与Spring Framework:技术决策过程
  6. 信息学奥赛一本通 1170:计算2的N次方 | OpenJudge NOI 1.6 12:计算2的N次方
  7. html5游戏制作总结
  8. 用汇编的眼光看C++(之指针1)
  9. Win10如何关闭管理员权限运行
  10. 动态加载js文件 document.createElement
  11. python logging 模块之TimedRotatingFileHandler 实现每天一个日志文件
  12. PAT——1054. 求平均值
  13. 103 解决粘包问题
  14. it人才计算机知识题,Excel试题_电脑基础知识_IT/计算机_专业资料
  15. android 仿旅游日历控件_仿携程日历控件
  16. 利用51单片机定时器模拟输出PWM波
  17. Windows下的conda换源和pip换源
  18. 有道云笔记 迁移 语雀过程记录
  19. 辐射避难所买了东西显示服务器异常,辐射避难所各种BUG怎么解决 所有BUG应对方法一览...
  20. 开源商城WSTMart升级thinkphp5.1框架实践

热门文章

  1. 南京联通试点电力线上网 家庭用户带宽达到2M
  2. <有搞头>---aardio+Python
  3. 手机卡,SIM卡,USIM 卡,nano卡
  4. 06_张孝祥_多线程_ThreadLocal类及应用技巧
  5. 极限编程(ExtremeProgramming,简称XP)
  6. 孙悟空的坚定目标 (孙悟空有何深仇大恨大闹天宫)
  7. 关于IIS Express在局域网使用
  8. 菜鸟码农一入行就拿百万年薪?2021硅谷巨头晒出霸气工资单!
  9. windows 远程桌面连接 用户账户限制
  10. 机器语言对不同型号的计算机来说一般是不同的