Функция GetLastError


Функция GetLastError извлекает значение кода последней ошибки вызывающего потока. Код последней ошибки сохраняется при посредстве базового компонента потока. Многие потоки не записывают поверх друг друга коды последней ошибки.

Синтаксис

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

DWORD GetLastError(VOID); 

Параметры

У этой функции нет параметров.

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

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

Windows 95/98/Me: Функции, которые фактически реализованы в 16-разрядном коде, не устанавливают код последней ошибки. Вы должны игнорировать код последней ошибки, когда вызываете эти функции. Они включают в себя функции управления окном, функции GDI и функции мультимедийных средств. Для функций, которые устанавливают код последней ошибки, Вы не должны надеяться на возврат функцией GetLastError того же самого значения и в среде Windows 95 /98/Me и в среде Windows NT.

Замечания

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

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

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

Большинство функций, которые устанавливают последнее значение кода ошибки потока, устанавливает его тогда, когда они завершаются ошибкой; несколько функций устанавливают код ошибки, когда они завершаются успешно. Функция, которая завершилась сбоем, обычно указывается кодом ошибки величины возвращаемого значения типа нуля, ПУСТО (NULL) или - (минус)1. Некоторые функции вызывают SetLastError при условии успешного завершения; на такие случаи обращается внимание в статьях справочника для каждой функции.

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

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

Код примера

Пример смотри в статье Извлечение кода последней ошибки.

Смотри также

Краткий обзор Обработка ошибок, Функции обработки ошибок, FormatMessage, HRESULT_FROM_WIN32, SetLastError, SetLastErrorEx

Размещение и совместимость GetLastError

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz