Aracılığıyla paylaş


Nasıl yapılır: İmzalanmamış Türler İsteyen Bir Windows İşlevi Çağırma (Visual Basic)

Sınıf, modül veya imzalanmamış tamsayı türünden birine üye olan yapı tüketiyorlar, bu üyeleri ile erişebilir Visual Basic.

İmzalanmamış bir tür götüren bir Windows işlevi çağırmak için

  1. Kullanımı bir Declare Deyimi bildirmek için Visual Basic hangi library işlevin tutan, o kitaplığın adını nedir, kendi arama sırası nedir ve nasıl onu ararken dizeleri dönüştürmek.

  2. De Declare deyimi, use UInteger, ULong, UShort, veya Byte imzalanmamış türü olan her parametre için uygun.

  3. Adları ve kullandığı sabitler değerleri bulmak için aradığınız Windows işlevi için belgelere bakın.Bunların çoğu WinUser.h dosyasında tanımlanır.

  4. Kodunuzda gerekli sabitleri bildir.32-Bit işaretsiz değerler birçok Windows sabittir ve bunlar bildirmeniz gerekir AsUInteger.

  5. Normal bir şekilde işlevini çağırın.Aşağıdaki örnek Windows işlevini çağırır MessageBox, işaretsiz tamsayı bağımsız değişken alır.

    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
    

    Fonksiyon test edebilirsiniz messageThroughWindows yerine aşağıdaki kodu.

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

    UInteger, ULong, UShort, Ve SByte veri türleri değil parçası Dil Bağımsızlığı ve Dilden Bağımsız Bileşenler (cls uyumlu kod bunları kullanan bir bileşenin kullanamayacaklarını böylece cls).

    Güvenlik NotuGüvenlik Notu

    Windows uygulama programlama arabirimi gibi (API) yönetimsiz kod aradığı kodunuzu olası güvenlik riskleri sunar.

    Güvenlik NotuGüvenlik Notu

    Windows API çağrılması, kısmi güven durumlarda yürütme etkileyebilir yönetilmeyen kod izni gerekir.Daha fazla bilgi için, bkz. SecurityPermission ve Kod Erişim İzinleri.

Ayrıca bkz.

Görevler

İzlenecek yol: Windows API'larını Çağırma (Visual Basic)

Başvuru

Veri Türü Özeti (Visual Basic)

Tamsayı Veri Türü (Visual Basic)

UInteger Veri Türü

Declare Deyimi