Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika Anda menggunakan kelas, modul, atau struktur yang memiliki anggota jenis bilangan bulat yang tidak ditandatangani, Anda dapat mengakses anggota ini dengan Visual Basic.
Untuk memanggil fungsi Windows yang menggunakan tipe tanpa tanda
Gunakan Pernyataan Deklarasikan untuk memberi tahu Visual Basic pustaka mana yang menyimpan fungsi, apa namanya di pustaka itu, urutan panggilannya, dan cara mengonversi string saat memanggilnya.
Dalam pernyataan
Declare
, gunakanUInteger
,ULong
,UShort
, atauByte
yang sesuai untuk setiap parameter dengan jenis yang tidak ditandatangani.Lihat dokumentasi untuk fungsi Windows yang Anda panggil untuk menemukan nama dan nilai konstanta yang digunakannya. Banyak dari ini didefinisikan dalam file WinUser.h.
Deklarasikan konstanta yang diperlukan dalam kode Anda. Banyak konstanta Windows adalah nilai yang tidak ditandatangani 32-bit, dan Anda harus mendeklarasikan ini
As UInteger
.Panggil fungsi dengan cara normal. Contoh berikut memanggil fungsi
MessageBox
Windows , yang mengambil argumen bilangan bulat yang tidak ditandatangani.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
UInteger
data ,ULong
,UShort
, danSByte
bukan bagian dari Kemandirian Bahasa dan Komponen Language-Independent (CLS), sehingga kode yang mematuhi CLS tidak dapat menggunakan komponen yang menggunakannya.Penting
Melakukan panggilan ke kode yang tidak dikelola, seperti antarmuka pemrograman aplikasi Windows (API), memaparkan kode Anda terhadap potensi risiko keamanan.
Penting
Memanggil Windows API memerlukan izin kode yang tidak dikelola, yang dapat memengaruhi eksekusinya dalam situasi kepercayaan parsial. Untuk informasi selengkapnya, lihat SecurityPermission dan Izin Akses Kode.