此示例定义并调用 MessageBox user32.dll 中的函数,然后将字符串传递给该函数。

示例:

' Defines the MessageBox function.

Public Class Win32

Declare Auto Function MessageBox Lib "user32.dll" (

ByVal hWnd As Integer, ByVal txt As String,

ByVal caption As String, ByVal Type As Integer

) As Integer

End Class

' Calls the MessageBox function.

Public Class DemoMessageBox

Public Shared Sub Main()

Win32.MessageBox(0, "Here's a MessageBox", "Platform Invoke Sample", 0)

End Sub

End Class

编译代码

此示例需要:

对 System 命名空间的引用。

可靠的编程

以下条件可能会导致异常:

该方法不是静态的,是抽象的,或者以前已定义。 父类型是接口,或者 名称 或 dllName 的长度为零。 (ArgumentException)

名称或 dllName 为 Nothing. (ArgumentNullException)

以前已使用 CreateType 创建包含类型。 (InvalidOperationException)

另请参阅

更深入地了解平台调用

平台调用示例

使用非托管 DLL 函数

用反射发出定义方法

演练:调用 Windows API

COM 互操作