GetLastError()
时间: 2024-09-12 12:04:52 浏览: 69
`GetLastError()` 是 Windows API 中的一个函数,用于获取最近一次操作失败时返回的错误代码[^1]。当你尝试执行一个 Windows API 调用并遇到错误时,这个函数可以提供有关错误性质的具体信息,以便于诊断和解决问题。
在多线程环境中,需要注意的是 `GetLastError()` 返回的是当前线程的错误码,这意味着每个线程拥有独立的错误状态。如果你在不同的线程中调用它,可能会得到不同线程的最新错误信息,因此在跨线程调试时要确保正确地记录和理解每个线程的错误情况。
使用示例(C++):
```cpp
#include <Windows.h>
DWORD lastError = GetLastError(); // 获取错误代码
if (lastError != NO_ERROR)
{
LPTSTR errorMessage;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, lastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&errorMessage, 0, NULL);
std::cerr << "Error: " << errorMessage << std::endl;
LocalFree(errorMessage); // 释放内存
}
```
在这个例子中,我们先获取 `GetLastError()` 的结果,如果不是 `NO_ERROR`(表示成功),则使用 `FormatMessage` 函数将错误代码转换成可读的消息。
阅读全文