找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3983|回复: 2

显示GetLastError()的错误描述字符串

[复制链接]
发表于 2015-7-19 21:43:31 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
  1. void ShowLastError()
  2. {
  3.         LPVOID lpMsgBuf;
  4.         FormatMessage
  5.         (
  6.                 FORMAT_MESSAGE_ALLOCATE_BUFFER | //返回一个已分配的内存
  7.                 FORMAT_MESSAGE_FROM_SYSTEM |  //系统消息
  8.                 FORMAT_MESSAGE_IGNORE_INSERTS, //无视插入信息
  9.                 NULL,
  10.                 GetLastError(),
  11.                 0, //默认语言
  12.                 (LPTSTR)&lpMsgBuf, //错误信息指针
  13.                 0,
  14.                 NULL
  15.         );
  16.         MessageBox(NULL,(LPCTSTR)lpMsgBuf,NULL,MB_OK|MB_ICONINFORMATION);
  17.         LocalFree(lpMsgBuf);//释放内存
  18. }
复制代码
回复

使用道具 举报

发表于 2015-7-20 17:03:02 | 显示全部楼层
再补上个

  1. int __cdecl MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)
  2. {
  3.      TCHAR szBuffer[1024];
  4.      TCHAR *pArg1 = (TCHAR*)&szFormat + sizeof(szFormat);
  5.      _vsnprintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), szFormat, pArg1);
  6.      return MessageBox (NULL, szBuffer, szCaption, MB_ICONINFORMATION);

  7. }
复制代码
回复 赞! 靠!

使用道具 举报

 楼主| 发表于 2016-2-3 05:54:28 | 显示全部楼层
然而MessageBox(NULL(第一个参数为NULL)会使GetLastError()返回ERROR_CLASS_ALREADY_EXISTS。
所以为了防止出错,正确的做法是把第一个参数填为你创建的窗口。
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 16:17 , Processed in 0.043506 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表