FormatMessage用法
时间: 2024-01-06 10:46:44 浏览: 115
`FormatMessage` 是一个Windows API函数,用于将一个系统错误码转换为一个可读的错误信息。
它的用法如下:
```c++
DWORD FormatMessage(
DWORD dwFlags,
LPCVOID lpSource,
DWORD dwMessageId,
DWORD dwLanguageId,
LPTSTR lpBuffer,
DWORD nSize,
va_list *Arguments
);
```
参数说明:
- `dwFlags`:格式化选项,可以使用 `FORMAT_MESSAGE_FROM_SYSTEM` 表示从系统错误码中获取信息。
- `lpSource`:保留,必须传入 `NULL`。
- `dwMessageId`:错误码。
- `dwLanguageId`:语言ID,如果为 `0`,则使用当前线程的语言设置。
- `lpBuffer`:缓冲区,用于存储转换后的错误信息。
- `nSize`:缓冲区大小。
- `Arguments`:可变参数列表,用于格式化错误信息。
示例代码:
```c++
DWORD dwLastError = GetLastError();
char szMsgBuffer[256] = { 0 };
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwLastError,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
szMsgBuffer,
sizeof(szMsgBuffer) - 1,
NULL);
printf("Error: %s\n", szMsgBuffer);
```
这段代码将获取最后一个系统错误码,并将其转换为可读的错误信息存储在 `szMsgBuffer` 中,然后打印出来。
阅读全文