Declare Function GetLastError Lib "kernel32" () As Long
GetLastError возвращает код ошибки, который происходит при вызове последней вызываемой функции. Большинство функций API просто возвращают номер кода ошибки, ничего не сообщая о характере ошибки. Эта функция возвращает универсальный код ошибки, определяя его тип. Обратите внимание, что многие функции устанавливают код ошибки в ноль, если функция сработала успешно, удаляя предыдущий код ошибки. Таким образом, нужно немедленно определять код ошибки при его возникновении. Для получения описания кода ошибки используйте функцию FormatMessage.
' Демонстрация обнаружения ошибки ' неверного определения описателя Dim retval As Long ' возвращаемое значение Dim errorcode As Long ' код ошибки ' делаем неправильное обращение к функциии, используя ' неверный описатель retval = CloseHandle(-1) ' нет описателя -1! If retval = 0 Then ' возвращаемое значение равно 0 при возникновении ошибки errorcode = GetLastError() ' находим код ошибки ' ошибка 6 = Неверный описатель If errorcode = 6 Then Debug.Print "ОШИБКА: Неверный описатель" End If
CommDlgExtendedError, FormatMessage, SetLastError, SetLastErrorEx