Procedura: chiamare API di Windows (Visual Basic)

Nell'esempio riportato di seguito la funzione MessageBox viene definita e chiamata nel file user32.dll, quindi a essa viene passata una stringa.

Esempio

' 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

Compilazione del codice

L'esempio presenta i seguenti requisiti:

  • Un riferimento allo spazio dei nomi System.

Programmazione efficiente

Le seguenti condizioni possono generare un'eccezione:

  • Il metodo non è statico, è astratto oppure è stato definito in precedenza.Il tipo padre è un'interfaccia oppure la lunghezza del nome o di nomeDll è zero.(ArgumentException)

  • Il nome o il nomeDll è Nothing.(ArgumentNullException)

  • Il tipo contenitore è stato creato in precedenza utilizzando CreateType.(InvalidOperationException)

Vedere anche

Attività

Procedura dettagliata: chiamata delle API di Windows (Visual Basic)

Concetti

Informazioni dettagliate su platform invoke

Esempi di platform invoke

Utilizzo di funzioni di DLL non gestite

Definizione di un metodo tramite reflection emit

Altre risorse

Interoperabilità COM (Visual Basic)