Bagikan melalui


Cara: Memanggil Fungsi Windows yang Mengambil Jenis Tidak Bertanda (Visual Basic)

Jika Anda menggunakan kelas, modul, atau struktur yang memiliki anggota jenis bilangan bulat tidak bertanda, Anda dapat mengakses anggota ini dengan Visual Basic.

Untuk memanggil fungsi Windows yang mengambil jenis tidak bertanda

  1. Gunakan Pernyataan Nyatakan untuk memberi tahu Visual Basic pustaka mana yang memegang fungsi, apa namanya dalam pustaka itu, berapa urutan panggilannya, dan cara mengonversi string saat memanggilnya.

  2. Dalam pernyataan Declare, gunakan UInteger, ULong, UShort, atau Byte sebagaimana mestinya untuk setiap parameter dengan jenis tidak bertanda.

  3. Lihat dokumentasi untuk fungsi Windows yang Anda panggil untuk menemukan nama dan nilai konstanta yang digunakannya. Banyak dari ini ditentukan dalam file WinUser.h.

  4. Nyatakan konstanta yang diperlukan dalam kode Anda. Banyak konstanta Windows merupakan nilai tidak bertanda 32-bit, dan Anda harus menyatakan As UInteger ini.

  5. Panggil fungsi dengan cara normal. Contoh berikut memanggil fungsi Windows MessageBox, yang mengambil argumen bilangan bulat tidak bertanda.

    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
    

    Anda dapat menguji fungsi messageThroughWindows dengan kode berikut.

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

    Perhatian

    Jenis data UInteger, ULong, UShort, dan SByte bukan bagian dari Kemandirian Bahasa dan Komponen Mandiri Bahasa (CLS), sehingga kode yang mematuhi CLS tidak dapat menggunakan komponen yang menggunakannya.

    Penting

    Melakukan panggilan ke kode tidak terkelola, seperti antarmuka pemrograman aplikasi (API) Windows, memaparkan kode Anda terhadap potensi risiko keamanan.

    Penting

    Pemanggilan API Windows memerlukan izin kode tidak terkelola, yang dapat memengaruhi eksekusinya dalam situasi kepercayaan parsial. Untuk informasi selengkapnya, lihat SecurityPermission dan Izin Akses Kode.

Lihat juga