在文档中,通常使用 C 语言的语法描述 DLL 中的过程。要在 Visual Basic 中调用这些过程,需要将它们转换成合法的 Declare 语句,并使用正确的参数调用它们。
在进行这种转换时,必须将 C 数据类型转换为 Visual Basic 的数据类型,并且说明每个参数是以使用值的 (ByVal) 方式,还是使用引用的 (ByRef)(缺省)方式。下表针对常用的 C 语言数据类型列出了与之等价的 Visual Basic 类型(用于 32 位版本的 Windows)。
C 语言数据类型 | 在 Visual Basic 中声明为 | 调用时使用的表达式 |
ATOM | ByVal variable As Integer | 结果为 Integer 类型的表达式 |
BOOL | ByVal variable As Long | 结果为 Long 类型的表达式 |
BYTE | ByVal variable As Byte | 结果为 Byte 类型的表达式 |
CHAR | ByVal variable As Byte | 结果为 Byte 类型的表达式 |
COLORREF | ByVal variable As Long | 结果为 Long 类型的表达式 |
DWORD | ByVal variable As Long | 结果为 Long 类型的表达式 |
HWND, HDC, HMENU 等。(Windows 句柄) | ByVal variable As Long | 结果为 Long 类型的表达式 |
INT, UINT | ByVal variable As Long | 结果为 Long 类型的表达式 |
LONG | ByVal variable As Long | 结果为 Long 类型的表达式 |
LPARAM | ByVal variable As Long | 结果为 Long 类型的表达式 |
LPDWORD | variable As Long | 结果为 Long 类型的表达式 |
LPINT, LPUINT | variable As Long | 结果为 Long 类型的表达式 |
LPRECT | variable As type | 自定义类型的任意变量 |
LPSTR, LPCSTR | ByVal variable As String | 结果为 String 类型的表达式 |
LPVOID | variable As Any | 任何变量(在传递字符串的时候使用 ByVal) |
LPWORD | variable As Integer | 结果为 Integer 类型的表达式 |
LRESULT | ByVal variable As Long | 结果为 Long 类型的表达式 |
NULL | As Any 或 ByVal variable As Long | ByVal Nothing 或 ByVal 0& 或vbNullString |
SHORT | ByVal variable As Integer | 结果为 Integer 类型的表达式 |
VOID | Sub procedure | 不可用 |
WORD | ByVal variable As Integer | 结果为 Integer 类型的表达式 |
WPARAM | ByVal variable As Long | 结果为 Long 类型的表达式 |