Udostępnij za pośrednictwem


Porady: wywoływanie funkcji Windows wykorzystującej typy bez znaku (Visual Basic)

Jeśli zabierają klasy, moduł lub strukturę, która ma elementów członkowskich typu Liczba całkowita bez znaku, można uzyskać dostęp do tych członków, z Visual Basic.

Wywołanie funkcji systemu Windows, która ma typ bez znaku

  1. Użyj Declare — Instrukcja stwierdzić, Visual Basic biblioteki, który posiada funkcję, jego nazwa jest w tej bibliotece, jest jego sekwencja wywoływania i sposób konwersji ciągów znaków podczas wywoływania go.

  2. W Declare instrukcji, użyj UInteger, ULong, UShort, lub Byte jako właściwe dla każdego parametru typu bez znaku.

  3. Zajrzyj do dokumentacji funkcji systemu Windows, który wywołujesz znaleźć nazwy i wartości stałych, których używa.Wiele z nich są zdefiniowane w pliku pliku WinUser.h.

  4. Stwierdzenie potrzeby stałych w kodzie.Wiele stałe systemu Windows są niepodpisane wartości 32-bitowe i należy zadeklarować te AsUInteger.

  5. Wywołać funkcję w normalny sposób.Poniższy przykład wywołuje funkcję Windows MessageBox, które przyjmuje argument liczba całkowita bez znaku.

    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
    

    Aby przetestować funkcję messageThroughWindows z następującego kodu.

    Public Sub consumeWindowsMessage()
        Dim w As New windowsMessage
        w.messageThroughWindows()
    End Sub
    
    Informacje dotyczące przestrogiPrzestroga

    UInteger, ULong, UShort, I SByte typy danych nie są częścią Niezależność od języka i elementy niezależne od języka (CLS), więc kod zgodny z CLS nie zużywa składnik, który korzysta z nich.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Wywołania do niezarządzanego kodu, takie jak interfejs programowania aplikacji (API), system Windows udostępnia kodu, potencjalne zagrożenie bezpieczeństwa.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Wywołanie interfejsu API systemu Windows wymaga uprawnienia niezarządzanego kodu, które mogą mieć wpływ na jego wykonanie w sytuacjach częściowego zaufania.Aby uzyskać więcej informacji, zobacz SecurityPermission i Uprawnienia dostępu kodu.

Zobacz też

Zadania

Wskazówki: wywoływanie Windows API (Visual Basic)

Informacje

Typ danych — Podsumowanie (Visual Basic)

Integer — Typ danych (Visual Basic)

UInteger — Typ danych

Declare — Instrukcja