Свойство LastDllError (Объект Err)

Обновлен: Ноябрь 2007

Возвращает код системной ошибки, полученной при вызове библиотеки динамической компоновки (DLL). Только для чтения.

ReadOnly Property LastDllError() As Integer

Заметки

Свойство LastDllError применяется только для вызовов DLL из кода Visual Basic. В этом случае вызываемая функция обычно возвращает код, обозначающий успешное выполнение или сбой, и происходит заполнение свойства LastDllError. Проверьте документацию для функций DLL, чтобы определить возвращаемые значения, обозначающие успешное выполнение или сбой. Каждый раз при возврате кода сбоя приложение Visual Basic должно немедленно проверить свойство LastDllError. Если задано свойство LastDllError, исключения не возникают.

yb8afh2h.alert_note(ru-ru,VS.90).gifПримечание.

Свойство 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

Ссылки

Объект Err (Visual Basic)

Оператор Declare

Свойство Description (Объект Err)

Функция ErrorToString

Свойство HelpContext (Объект Err)

Свойство HelpFile (объект Err)

Свойство Number (объект Err)

Свойство Source (Объект Err)