WinAPI

GetLastError

  • 2010-10-31 18:27
  • 0 komentarzy
  • 1351 odsłon
  • Oceń ten tekst jako pierwszy
// C
DWORD GetLastError(void);

// Delphi
function GetLastError: DWORD;
(więcej w artykule GetLastError działu "Delphi")

Funkcja GetLastError zwraca wartość ostatniego błędu dla wywołującego ją wątku. Każdy wątek przechowuje swój własny numer ostatniego błędu.

Visual Basic:  Aplikacje powinny korzystać z funkcji err.LastDllError zamiast GetLastError.

Parametry
Brak.

Wartość zwracana
Zwrócona wartość to numer ostatniego błędu, który wystąpił w danym wątku. Numer tego błędu jest ustawiany funkcją SetLastError.

Windows Me/98/95: Funkcje, które są zaimplementowane w 16-bitowej części jądra systemu nie ustawiają numeru ostatniego błędu, nie należy więc polegać na wartości zwróconej przez GetLastError po ich wywołaniu. Wśród tych funkcji znajdują się funkcje zarządzające oknami, funkcje GDI i multimedialne. Ponadto należy mieć na uwadze, że GetLastError może zwrócić inne wartości dla tych samych funkcji w innej wersji Windows.

Uwagi
Aby pobrać komunikat błedu o danym numerze, należy użyć funkcji FormatMessage. Oto kompletna lista błędów systemu (eng).

Numery błędów nie są częścią specyfikacji WinAPI i mogą zależeć od wersji systemu lub jego poszczególnych części. Z tego względu są funkcje, których dokumentacja nie zawiera listy błędów, które ta funkcja może zwrócić.

Funkcję GetLastError należy wywołać zaraz po wywołaniu funkcji, której kod błędu ma być pobrany, ponieważ niektóre funkcje przy wyjściu zakończonym sukcesem ustawiają kod błędu na 0, usuwając w ten sposób informację o błędzie, który wystąpił wcześniej.

Kody błędów to 32-bitowe liczby. Bit 29 jest zarezerwowany dla kodów błędów zdefiniowanych przez aplikacje - żaden systemowy kod błędu nie ma tego bitu ustawionego.

Zobacz też: