Свойство LastDllError (Объект Err)
Обновлен: Ноябрь 2007
Возвращает код системной ошибки, полученной при вызове библиотеки динамической компоновки (DLL). Только для чтения.
ReadOnly Property LastDllError() As Integer
Заметки
Свойство LastDllError применяется только для вызовов DLL из кода Visual Basic. В этом случае вызываемая функция обычно возвращает код, обозначающий успешное выполнение или сбой, и происходит заполнение свойства LastDllError. Проверьте документацию для функций DLL, чтобы определить возвращаемые значения, обозначающие успешное выполнение или сбой. Каждый раз при возврате кода сбоя приложение Visual Basic должно немедленно проверить свойство LastDllError. Если задано свойство LastDllError, исключения не возникают.
Примечание. |
---|
Свойство LastDllError защищено при помощи LinkDemand, что предотвращает доступ к нему из нежелаемого кода. Однако, LinkDemand требует, чтобы непосредственный вызывающий оператор имел разрешение UnmanagedCode. Если ваш код может быть вызван из частично доверенного кода, предоставление значения LastDllError без проверки является угрозой безопасности. Важные ограничения по использованию элемента LinkDemand содержатся в разделе Выбор между проверками Demand и LinkDemand. Дополнительные сведения о разрешениях см. в разделе SecurityPermission и Разрешения для доступа к коду. |
Пример
В следующем примере показано, как можно использовать свойство LastDllError после вызова функции в Windows API. Процедура PrintWindowCoordinates принимает дескриптор для окна и вызывает функцию GetWindowRect. GetWindowRect заполняет структуру данных RECT длинами сторон прямоугольника, образующего окно. Если передается недопустимый дескриптор, возникает ошибка, и номер ошибки доступен при помощи свойства LastDllError.
Declare Function GetWindowRect Lib "user32" _
(ByVal hwnd As Integer, ByRef lpRect As RECT) As Integer
...
Public Structure RECT
Public Left As Integer
Public Top As Integer
Public Right As Integer
Public Bottom As Integer
End Structure
...
Const ERROR_INVALID_WINDOW_HANDLE As Long = 1400
Const ERROR_INVALID_WINDOW_HANDLE_DESCR As String = _
"Invalid window handle."
Private Sub PrintWindowCoordinates(ByVal hwnd As Integer)
' Prints left, right, top, and bottom positions
' of a window in pixels.
Dim rectWindow As RECT
' Pass in window handle and empty the data structure.
' If function returns 0, an error occurred.
If GetWindowRect(hwnd, rectWindow) = 0 Then
' Check LastDllError and display a dialog box if the error
' occurred because an invalid handle was passed.
If Err.LastDllError = ERROR_INVALID_WINDOW_HANDLE Then
MsgBox(ERROR_INVALID_WINDOW_HANDLE_DESCR, Title:="Error!")
End If
Else
Debug.Print(rectWindow.Bottom)
Debug.Print(rectWindow.Left)
Debug.Print(rectWindow.Right)
Debug.Print(rectWindow.Top)
End If
End Sub
Примечания для разработчиков приложений для интеллектуальных устройств
Это свойство всегда возвращает ноль.
Требования
Пространство имен: Microsoft.VisualBasic
**Модуль:**ErrObject
**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)
См. также
Основные понятия
Выбор между проверками Demand и LinkDemand
Ссылки
Свойство Description (Объект Err)
Свойство HelpContext (Объект Err)