win32格式化错误消息

GetLastError()函数获取错误代码,是一个数字;具体错误信息需要查;

如果使用FormatMessage函数,可显示错误信息;

// astdemo.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
	PVOID lpMsgBuf;	
 
	if (FormatMessage( 
			FORMAT_MESSAGE_ALLOCATE_BUFFER |            // 自动分配缓存
			FORMAT_MESSAGE_FROM_SYSTEM |                // 系统消息
			FORMAT_MESSAGE_IGNORE_INSERTS,
			NULL,
			GetLastError(),                             // 错误代码
			MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),  // 默认语言
			(LPTSTR)&lpMsgBuf,
			0,
			NULL))
	{
		// TODO: 添加你的处理代码.
		MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK);
	}
	LocalFree(lpMsgBuf);    // 释放内存

	getchar();
	return 0;
}

运行如下; 

LPVOID到LPCSTR需要转换一下,(LPCTSTR)lpMsgBuf,不转则出错如下;

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/113716910