GetLastError 関数 (errhandlingapi.h)

呼び出し元のスレッドの最終エラー コード値を取得します。 最後のエラー コードは、スレッドごとに管理されます。 複数のスレッドは、相互の最後のエラー コードを上書きしません。

Visual Basic: アプリケーションでは err を呼び出す必要があります GetLastError の代わりに LastDllError。

構文

_Post_equals_last_error_ DWORD GetLastError();

戻り値

戻り値は、呼び出し元スレッドの最後のエラー コードです。

最後のエラー コードを設定する各関数のドキュメントの戻り値セクションでは、関数が最後のエラー コードを設定する条件をメモします。 スレッドの最後のエラー コードを設定するほとんどの関数は、失敗したときにそれを設定します。 ただし、一部の関数では、成功したときに最後のエラー コードも設定されます。 関数が最後のエラー コードを設定するように文書化されていない場合、この関数によって返される値は、設定された最新の最後のエラー コードです。一部の関数では、成功時に最後のエラー コードが 0 に設定され、そうでない関数もあります。

注釈

呼び出し元のスレッドによって実行される関数は 、SetLastError 関数を呼び出すことによってこの値を設定します。 GetLastError 関数は、関数の戻り値が、このような呼び出しで有用なデータを返す場合にすぐに呼び出す必要があります。 これは、一部の関数は成功すると SetLastError を 0 で呼び出し、最後に失敗した関数によって設定されたエラー コードを消去するためです。

システム エラー コードのエラー文字列を取得するには、 FormatMessage 関数を使用します。 オペレーティング システムによって提供されるエラー コードの完全な一覧については、「 システム エラー コード」を参照してください。

関数によって返されるエラー コードは Windows API 仕様の一部ではなく、オペレーティング システムまたはデバイス ドライバーによって異なる場合があります。 このため、各関数から返されるエラー コードの完全な一覧は提供できません。 また、ドキュメントに返すことができるエラー コードの一部の一覧も含まれていない関数も多数あります。

エラー コードは 32 ビット値です (ビット 31 が最上位ビットです)。 ビット 29 はアプリケーション定義のエラー コード用として予約されています。このビットを設定できるシステム エラー コードはありません。 アプリケーションのエラー コードを定義する場合は、このビットを 1 に設定します。 これは、エラー コードがアプリケーションによって定義されていることを示し、エラー コードがシステムによって定義されたエラー コードと競合しないようにします。

システム エラーを HRESULT 値に変換するには、 HRESULT_FROM_WIN32 マクロを使用します。

例については、「 Last-Error コードの取得」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー errhandlingapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

エラー処理関数

FormatMessage

HRESULT_FROM_WIN32

最終エラー コード

SetLastError

SetLastErrorEx

VBS エンクレーブで使用できる Vertdll API