查看DLL函数的标识包_无法再Dll中找到名为的入口点

分类:.Net知识问答| 发布:camnprbubuol| 查看: | 发表时间:2011/3/24

DLL   函数的标识包括以下元素:     
    
  函数的名称或序号     
  实现所在的   DLL   文件的名称     
  例如,如果指定   User32.dll   中的   MessageBox   函数,需要标识该函数   (MessageBox)   及其位置(User32.dll、User32   或   user32)。Microsoft   Windows   应用程序编程接口   (Win32   API)   可以包含每个字符和字符串处理函数的两个版本:单字节字符   ANSI   版本和双字节字符   Unicode   版本。如果不进行指定,CharSet   字段所表示的字符集将默认为   ANSI。某些函数可以有两个以上的版本。   
    
  MessageBoxA   是   MessageBox   函数的   ANSI   入口点;而   MessageBoxW   是   Unicode   版本。可以通过运行各种命令行工具,为特定   DLL(例如   user32.dll)列出函数名。例如,可以使用   dumpbin   –exports   user32.dll   或   link   –dump   –exports   user32.dll   来获取函数名。   
    
  您可以在代码中将非托管函数重命名为任何所需的名称,但是要将该新名称映射到   DLL   中的初始入口点。有关在托管源代码中重命名非托管   DLL   函数的说明,请参见指定入口点。   
    
  利用平台调用,可以通过调用   Win32   API   和其他   DLL   中的函数来控制操作系统中相当大的一部分。除了   Win32   API   之外,还有许多其他的   API   和   DLL   可通过平台调用来调用。   
    
  下表将说明   Win32   API   中几个常用的   DLL。   
    
  DLL   内容说明     
  GDI32.dll   用于设备输出的图形设备接口   (GDI)   函数,例如用于绘图和字体管理的函数。     
  Kernel32.dll   用于内存管理和资源处理的低级别操作系统函数。     
  User32.dll   用于消息处理、计时器、菜单和通信的   Windows   管理函数。     
    
  有关   Win32   API   的全部文档,请参见   Platform   SDK。有关说明如何构造用于平台调用的基于   .NET   的声明的示例,请参见用平台调用封送数据。 

用vc6的DEPENDS.EXE工具察看gdiplus.dll确切函数,有时候函数名是一个很奇怪的字符串

 

无法再Dll中找到名为的入口点 的原因:

 函数在编译成DLL后函数的名称有可能发生了改变:会在函数的前后产生一些字符 。

所以,建议使用eXeScope的软件查出函数在编译后具体变成了什么名称,只要将这些名称输入完全就可以正确找到入口函数。

可以使用   dumpbin   –exports   user32.dll   或   link   –dump   –exports   user32.dll   来获取函数名

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/250.html