Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Если вы используете класс, модуль или структуру с элементами без знака целочисленных типов, вы можете получить доступ к этим членам с помощью Visual Basic.
Вызов функции Windows, которая принимает неподписанный тип
Используйте инструкцию Declare, чтобы сообщить Visual Basic, какая библиотека содержит функцию, ее имя в этой библиотеке, порядок вызова и способ преобразования строк при вызове.
В инструкции
DeclareиспользуйтеUInteger,ULong,UShortилиByteв зависимости от каждого параметра с неподписанным типом.Ознакомьтесь с документацией по вызываемой функции Windows, чтобы найти имена и значения используемые константы. Многие из них определены в файле WinUser.h.
Объявите необходимые константы в коде. Многие константы Windows — это 32-разрядные значения без знака, и их следует объявить
As UInteger.Вызовите функцию как обычно. В следующем примере вызывается функция
MessageBoxWindows, которая принимает несписанный целочисленный аргумент.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Вы можете протестировать функцию
messageThroughWindowsс помощью следующего кода.Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End SubОсторожность
Типы данных
UInteger,ULong,UShortиSByteне являются частью Language Independence and Language-Independent Components (CLS), поэтому код, совместимый с CLS, не может использовать компонент, использующий их.Это важно
Вызов неуправляемого кода, например интерфейса программирования приложений Windows (API), подвергает ваш код потенциальным угрозам безопасности.
Это важно
Вызов API Windows требует прав доступа к неуправляемому коду, что может повлиять на его выполнение в условиях частичного доверия. Дополнительные сведения см. в разделе SecurityPermission " Разрешения доступа к коду".