GetLastError 函数 (errhandlingapi.h)

检索调用线程的最后错误代码值。 最后一个错误代码按线程进行维护。 多个线程不会覆盖彼此的最后一个错误代码。

Visual Basic: 应用程序应调用 err。LastDllError 而不是 GetLastError

语法

_Post_equals_last_error_ DWORD GetLastError();

返回值

返回值是调用线程的最后错误代码。

设置最后错误代码的每个函数的文档的返回值部分记录了函数设置最后错误代码的条件。 设置线程最后错误代码的大多数函数在失败时设置它。 但是,某些函数还会在成功时设置最后一个错误代码。 如果未记录函数以设置最后一个错误代码,则此函数返回的值只是要设置的最新最后一个错误代码;某些函数在成功时将最后一个错误代码设置为 0,而其他函数则不这样做。

注解

调用线程执行的函数通过调用 SetLastError 函数来设置此值。 当函数的返回值指示此类调用将返回有用的数据时,应立即调用 GetLastError 函数。 这是因为某些函数在成功时以零调用 SetLastError ,从而清除最近失败的函数设置的错误代码。

若要获取系统错误代码的错误字符串,请使用 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 enclave 中可用的 Vertdll API