Поделиться через


Функция GetLastError (errhandlingapi.h)

Извлекает значение кода последней ошибки вызывающего потока. Код последней ошибки сохраняется для каждого потока. Несколько потоков не перезаписывают код последней ошибки друг друга.

Visual Basic: Приложения должны вызывать err. LastDllError вместо GetLastError.

Синтаксис

_Post_equals_last_error_ DWORD GetLastError();

Возвращаемое значение

Возвращаемое значение — это код последней ошибки вызывающего потока.

В разделе Возвращаемое значение документации по каждой функции, которая задает код последней ошибки, отмечаются условия, при которых функция задает код последней ошибки. Большинство функций, которые задают код последней ошибки потока, устанавливают его при сбое. Однако некоторые функции также задают код последней ошибки при успешном выполнении. Если функция не задокументирована для задания кода последней ошибки, значение, возвращаемое этой функцией, — это просто последний код последней ошибки, который был задан; Некоторые функции устанавливают для кода последней ошибки значение 0 при успешном выполнении, а другие — нет.

Комментарии

Функции, выполняемые вызывающим потоком, устанавливают это значение путем вызова функции SetLastError . Функцию GetLastError следует вызывать немедленно, когда возвращаемое значение функции указывает, что такой вызов вернет полезные данные. Это связано с тем, что некоторые функции вызывают SetLastError с нулевым значением при успешном выполнении, удаляя код ошибки, заданный последней неудачной функцией.

Чтобы получить строку ошибки для системных кодов ошибок, используйте функцию FormatMessage . Полный список кодов ошибок, предоставляемых операционной системой, см. в разделе Системные коды ошибок.

Коды ошибок, возвращаемые функцией, не являются частью спецификации API Windows и могут отличаться в зависимости от операционной системы или драйвера устройства. По этой причине мы не можем предоставить полный список кодов ошибок, которые могут быть возвращены каждой функцией. Кроме того, существует множество функций, документация которых не содержит даже частичного списка кодов ошибок, которые могут быть возвращены.

Кодами ошибок являются 32-разрядные значения (бит 31 является наиболее значимым битом). Бит 29 зарезервирован для кодов ошибок, определяемых приложением; Этот бит не задан в коде системной ошибки. Если вы определяете код ошибки для приложения, задайте для этого бита значение 1. Это означает, что код ошибки определен приложением, и гарантирует, что код ошибки не конфликтует с кодами ошибок, определенными системой.

Чтобы преобразовать системную ошибку в значение HRESULT , используйте макрос HRESULT_FROM_WIN32 .

Примеры

Пример см. в разделе Извлечение кода Last-Error.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header errhandlingapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Функции обработки ошибок

FormatMessage

HRESULT_FROM_WIN32

Код последней ошибки

SetLastError

SetLastErrorEx

API-интерфейсы Vertdll, доступные в анклавах VBS