Поделиться через


Практическое руководство. Вызов Windows API (Visual Basic)

В этом примере определяется и вызывается функция MessageBox в библиотеке user32.dll, после чего ей передается строка.

Пример

Данный пример кода доступен также в качестве фрагмента кода IntelliSense. В окне выбора фрагмента кода он находится в разделе Язык Visual Basic. Дополнительные сведения см. в разделе Практическое руководство. Вставка фрагментов кода IntelliSense.

' 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.

Отказоустойчивость

Возникновение исключения возможно при следующих условиях:

  • Метод не статический, абстрактный, или же он был уже определен. Родительский тип является типом интерфейса, или name или dllName имеет нулевую длину. (ArgumentException)

  • name или dllname имеют значение Nothing. (ArgumentNullException)

  • Содержащий тип был создан ранее с помощью метода CreateType. (InvalidOperationException)

См. также

Задачи

Пошаговое руководство. Вызов API Windows (Visual Basic)

Основные понятия

Подробный обзор вызова неуправляемого кода

Примеры вызовов неуправляемого кода

Использование неуправляемых функций DLL

Определение метода с помощью порождаемого отражения

Другие ресурсы

COM-взаимодействие (Visual Basic)