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

Questo esempio di codice è disponibile anche come frammento di codice IntelliSense. Nella casella di selezione dei frammenti di codice si trova in Linguaggio Visual Basic. Per ulteriori informazioni, vedere Procedura: inserire frammenti di codice 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

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)