GetLastError 函数 (errhandlingapi.h)

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

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

语法

_Post_equals_last_error_ DWORD GetLastError();

返回值

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

每个设置最后错误代码的函数的文档的 Return Value 部分会记录函数设置最后错误代码的条件。 大多数设置线程最后错误代码的函数在失败时设置它。 但是,某些函数在成功时还会设置最后一个错误代码。 如果未记录该函数来设置最后一个错误代码,则此函数返回的值只是要设置的最新最后一个错误代码;某些函数在成功时将最后一个错误代码设置为 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