Procedura: Chiamare una funzione Windows che accetta tipi senza segno (Visual Basic)How to: Call a Windows Function that Takes Unsigned Types (Visual Basic)

Se si sta utilizzando una classe, modulo o una struttura con membri dei tipi di integer senza segno, è possibile accedere a questi membri con Visual Basic.If you are consuming a class, module, or structure that has members of unsigned integer types, you can access these members with Visual Basic.

Per chiamare una funzione Windows che accetta un tipo unsignedTo call a Windows function that takes an unsigned type

  1. Usare un Declare Statement per indicare a Visual Basic la libreria che contiene la funzione, che cos'è il nome di tale libreria, che cos'è la sequenza di chiamata e come convertire le stringhe quando viene chiamata.Use a Declare Statement to tell Visual Basic which library holds the function, what its name is in that library, what its calling sequence is, and how to convert strings when calling it.

  2. Nel Declare istruzione, utilizzare UInteger, ULong, UShort, o Byte come appropriato per ogni parametro con un tipo senza segno.In the Declare statement, use UInteger, ULong, UShort, or Byte as appropriate for each parameter with an unsigned type.

  3. Consultare la documentazione per la funzione di Windows che per trovare i nomi e valori delle costanti che usa si sta chiamando.Consult the documentation for the Windows function you are calling to find the names and values of the constants it uses. Molte di queste sono definiti nel file winuser. H.Many of these are defined in the WinUser.h file.

  4. Dichiarare le costanti necessarie nel codice.Declare the necessary constants in your code. Molte Windows costanti sono valori senza segno a 32 bit e devono essere dichiarate As UInteger.Many Windows constants are 32-bit unsigned values, and you should declare these As UInteger.

  5. Chiamare la funzione in modo normale.Call the function in the normal way. L'esempio seguente chiama la funzione Windows MessageBox, che accetta un argomento di intero senza segno.The following example calls the Windows function MessageBox, which takes an unsigned integer argument.

    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.You can test the function messageThroughWindows with the following code.

    Public Sub consumeWindowsMessage()
        Dim w As New windowsMessage
        w.messageThroughWindows()
    End Sub
    

    Attenzione

    Il UInteger, ULong, UShort, e SByte tipi di dati non sono in parte il Language Independence and Language-Independent Components (CLS), pertanto il codice conforme a CLS non è possibile utilizzare un componente che li Usa.The UInteger, ULong, UShort, and SByte data types are not part of the Language Independence and Language-Independent Components (CLS), so CLS-compliant code cannot consume a component that uses them.

    Importante

    Effettua una chiamata a codice non gestito, ad esempio l'interfaccia di programmazione dell'applicazione di Windows (API), espone il codice a potenziali rischi di sicurezza.Making a call to unmanaged code, such as the Windows application programming interface (API), exposes your code to potential security risks.

    Importante

    Chiamare l'API di Windows richiede l'autorizzazione di accesso al codice non gestito, che possono influire sull'esecuzione in situazioni di attendibilità parziale.Calling the Windows API requires unmanaged code permission, which might affect its execution in partial-trust situations. Per altre informazioni, vedere SecurityPermission e le autorizzazioni di accesso di codice.For more information, see SecurityPermission and Code Access Permissions.

Vedere ancheSee also