在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);