获取windows系统错误

本文介绍了一个用于获取Windows系统中最后发生的Win32错误代码的函数实现。该函数能够根据错误代码返回对应的错误信息,有助于开发者在遇到系统错误时进行诊断。文章提供了源代码示例,展示了如何使用FormatMessage函数将错误代码转换为人类可读的字符串格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//Returns the last Win32 error, in string format. Returns an empty string if there is no error.
#ifdef UNICODE
std::wstring GetSysError(DWORD errCode)
#else
std::string GetSysError(DWORD errCode)
#endif
{
	DWORD errorMessageID = errCode;

	TCHAR* messageBuffer = nullptr;
	size_t size = FormatMessage(
		FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
		NULL,
		errorMessageID,
		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
		(TCHAR *)&messageBuffer,
		0,
		NULL);

#ifdef UNICODE
	std::wstring message(messageBuffer, size);
#else
	std::string message(messageBuffer, size);
#endif

	//Free the buffer.
	LocalFree(messageBuffer);

	return message;

转载于:https://my.oschina.net/3cwYg4/blog/2987983

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值