Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se si utilizza una classe, un modulo o una struttura con membri di tipi integer senza segno, è possibile accedere a questi membri con Visual Basic.
Per chiamare una funzione di Windows che accetta un tipo senza segno
Utilizzare un'istruzione Declare per indicare a Visual Basic quale libreria contiene la funzione, qual è il nome della libreria, qual è la sequenza chiamante e come convertire le stringhe durante la chiamata.
Nell'istruzione
Declare
usareUInteger
,ULong
,UShort
oByte
come appropriato per ogni parametro con un tipo senza segno.Consultare la documentazione relativa alla funzione di Windows che si sta chiamando per trovare i nomi e i valori delle costanti usate. Molti di questi sono definiti nel file WinUser.h.
Dichiarare le costanti necessarie nel codice. Molte costanti di Windows sono valori senza segno a 32 bit ed è necessario dichiarare questi
As UInteger
valori .Chiamare la funzione in modo normale. Nell'esempio seguente viene chiamata la funzione
MessageBox
Windows, che accetta un numero intero senza segno.Public Class windowsMessage Private Declare Auto Function mb Lib "user32.dll" Alias "MessageBox" ( ByVal hWnd As Integer, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As UInteger) As Integer Private Const MB_OK As UInteger = 0 Private Const MB_ICONEXCLAMATION As UInteger = &H30 Private Const IDOK As UInteger = 1 Private Const IDCLOSE As UInteger = 8 Private Const c As UInteger = MB_OK Or MB_ICONEXCLAMATION Public Function messageThroughWindows() As String Dim r As Integer = mb(0, "Click OK if you see this!", "Windows API call", c) Dim s As String = "Windows API MessageBox returned " & CStr(r)& vbCrLf & "(IDOK = " & CStr(IDOK) & ", IDCLOSE = " & CStr(IDCLOSE) & ")" Return s End Function End Class
È possibile testare la funzione
messageThroughWindows
con il codice seguente.Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
Attenzione
I
UInteger
tipi di dati ,ULong
,UShort
eSByte
non fanno parte dell'indipendenza del linguaggio e dei componenti Language-Independent (CLS), pertanto il codice conforme a CLS non può utilizzare un componente che li usa.Importante
Effettuare una chiamata a codice non gestito, ad esempio l'API (Application Programming Interface) di Windows, espone il codice a potenziali rischi per la sicurezza.
Importante
La chiamata all'API Di Windows richiede l'autorizzazione del codice non gestito, che potrebbe influire sull'esecuzione in situazioni di attendibilità parziale. Per altre informazioni, vedere SecurityPermission e Autorizzazioni di accesso al codice.