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