标识 DLL 中的函数
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 的声明的示例,请参见用平台调用封送数据。