可是有錯誤代碼還不夠,若需要知道真正錯誤原因,就得要去微軟官網去找出GetLastError回傳錯誤碼對應的文字敘述。
如果沒有網路的話要找出錯誤碼所表示的錯誤原因就很麻煩,這裡提供直接用Windows API來直接取得錯誤訊息的文字敘述,以協助我們進行程式偵錯。
void GetErrorMessage(DWORD dwErrorMessageCode) { CString strMsg; LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwErrorMessageCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 預設語言 (LPTSTR) &lpMsgBuf, 0, NULL); strMsg.Format(_T("Error Message : %s\nError Code : 0x%X\n"), lpMsgBuf, dwErrorMessageCode); printf(strMsg); LocalFree(lpMsgBuf); // 記得free掉空間,養成好習慣 } DWORD dwErrorMessageCode傳入GetLastError()的數值即可
沒有留言:
張貼留言