将GetLastError()的返回值转换成Windows信息

来源:互联网 发布:看图纸dwg for mac 编辑:程序博客网 时间:2024/05/01 23:46

在Win32开发中如果出现了错误用GetLastError只是可以取到一个错误的代号而已,用下面的方法可以将这个错误代号转换成中文的信息串

 

//参数就是GetLastError的返回值
void ShowErrorInfo(DWORD errorCode)
{
 LPVOID lpMsgBuf;
 ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL);
 AfxMessageBox((LPCTSTR)lpMsgBuf);
 LocalFree(lpMsgBuf);
}

 

AfxMessageBox((LPCTSTR)lpMsgBuf);是MFC里面的产物,如果只是基于Win32 SKD开发的话,就用MessageBox(NULL,lpMsgBuf,"info",0);

原创粉丝点击