在编程过程中,当程序出现错误,却又不知道错误的原因时,可以使用GetLastError函数,它可以帮助你快速找到出错的原因和语句。
可以直接使用GetLastError函数得到错误代码,然后查找MSDN找到代码对应的错误原因,也可使用下面函数直接把错误原因显示出来:
void ShowErrMsg()
...{
TCHAR szBuf[80];
LPVOID lpMsgBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
MessageBox(NULL, lpMsgBuf, "系统错误", MB_OK|MB_ICONSTOP);
LocalFree(lpMsgBuf);
}
...{
TCHAR szBuf[80];
LPVOID lpMsgBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
MessageBox(NULL, lpMsgBuf, "系统错误", MB_OK|MB_ICONSTOP);
LocalFree(lpMsgBuf);
}
然后根据错误的原因查找是哪条语句执行了相关操作,传入的参数是否正确等,就可以修正错误了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1612799
评论