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


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

Обновлен: Ноябрь 2007

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

Пример

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

' 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

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

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

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

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

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

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

COM-взаимодействие