API 获得GetLastError()错误代码对应的文字信息

原文连接:https://www.cnblogs.com/jqdy/p/15079041.html

  API 函数出现错误后,通过GetLastError() 可以取得对应的错误代码。利用这个错误代码可以进一步查询到对应的文字描述信息。

  • 参数1:pszErrorString(out),信息字符串缓冲区指针
  • 参数2:cErrorString(in),参数1 缓冲区的长度
  • 参数3:dwErrorCode(in),GetLastError()获取的错误代码
  • 备注,输出格式为 :(err:数字)文字信息
  #include <Windows.h>
  #include <strsafe.h>
 1 PTSTR GetWindowsErrorString(PTSTR pszErrorString,  WORD cErrorString, DWORD dwErrorCode)
 2 {
 3     LPVOID lpMsgBuf = NULL;
 4     FormatMessage(
 5         FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
 6         NULL,
 7         dwErrorCode,
 8         MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
 9         (LPTSTR)&lpMsgBuf,
10         0,
11         NULL);
12     StringCchPrintf(
13         pszErrorString,
14         cErrorString,
15         TEXT("(err:%d)%s"),
16         dwErrorCode,
17         (LPTSTR)lpMsgBuf);
18     LocalFree(lpMsgBuf); // 释放 FormatMessage() 函数中分配的空间
19     return pszErrorString;
20 }

 

posted @ 2021-07-30 12:04  jqdy  阅读(441)  评论(0编辑  收藏  举报