技术宅的结界

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

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1721|回复: 2
收起左侧

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

[复制链接]

1060

主题

2443

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19518 个
贡献
40309 次
宅之契约
0 份
在线时间
1846 小时
注册时间
2014-1-26
发表于 2015-7-19 21:43:31 | 显示全部楼层 |阅读模式

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

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

x
[C] 纯文本查看 复制代码
void ShowLastError()
{
	LPVOID lpMsgBuf;
	FormatMessage
	( 
		FORMAT_MESSAGE_ALLOCATE_BUFFER | //返回一个已分配的内存
		FORMAT_MESSAGE_FROM_SYSTEM |  //系统消息
		FORMAT_MESSAGE_IGNORE_INSERTS, //无视插入信息
		NULL,
		GetLastError(),
		0, //默认语言
		(LPTSTR)&lpMsgBuf, //错误信息指针
		0,
		NULL 
	);
	MessageBox(NULL,(LPCTSTR)lpMsgBuf,NULL,MB_OK|MB_ICONINFORMATION);
	LocalFree(lpMsgBuf);//释放内存
}
回复

使用道具 举报

0

主题

76

帖子

6735

积分

用户组: 真·技术宅

UID
604
精华
0
威望
1 点
宅币
804 个
贡献
5853 次
宅之契约
0 份
在线时间
97 小时
注册时间
2014-12-20
发表于 2015-7-20 17:03:02 | 显示全部楼层
再补上个
[C++] 纯文本查看 复制代码
int __cdecl MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)
{
     TCHAR szBuffer[1024];
     TCHAR *pArg1 = (TCHAR*)&szFormat + sizeof(szFormat);
     _vsnprintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), szFormat, pArg1); 
     return MessageBox (NULL, szBuffer, szCaption, MB_ICONINFORMATION);

}

1060

主题

2443

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19518 个
贡献
40309 次
宅之契约
0 份
在线时间
1846 小时
注册时间
2014-1-26
 楼主| 发表于 2016-2-3 05:54:28 | 显示全部楼层
然而MessageBox(NULL(第一个参数为NULL)会使GetLastError()返回ERROR_CLASS_ALREADY_EXISTS。
所以为了防止出错,正确的做法是把第一个参数填为你创建的窗口。

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-16 11:25 , Processed in 0.109148 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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