在編程過程中,當程序出現錯誤,卻又不知道錯誤的原因時,可以使用
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);
}


然后根據錯誤的原因查找是哪條語句執行了相關操作,傳入的參數是否正確等,就可以修正錯誤了。