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
Utilizzo di funzioni di DLL non gestite
Definizione di un metodo tramite reflection emit