程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Windows API : 系統錯誤信息字符串獲取

Windows API : 系統錯誤信息字符串獲取

編輯:.NET實例教程

還在不斷的切換到 ERROR LOOKUP 程序查看 API 返回的系統錯誤代碼嗎? 那簡直太低效啦!

不如讓系統以當前默認編碼為你生成錯誤信息字符串吧:

/////////////////////////////////////////////////////////////////////////////
//
// IN
// DWord dwError  錯誤號,默認值(0xFFFFFFFF)表示直接獲取本線程的最後錯誤號
//
// OUT
// CString    系統生成的錯誤信息串
//
static CString GetErrorMsg(DWord dwError = 0xFFFFFFFF)
{
 dwError = (dwError == 0xFFFFFFFF) ? GetLastError() : dwError;

 // format message
 LPVOID lpMsgBuf;
 FormatMessage(
  FORMAT_MESSAGE_ALLOCATE_BUFFER |
  FORMAT_MESSAGE_FROM_SYSTEM |
  FORMAT_MESSAGE_IGNORE_INSERTS,
  NULL, // module to get message from (NULL == system)
  dwError,
  0,  // Default language : MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)
  (LPTSTR) &lpMsgBuf,
  0,
  NULL
  );
 // Process any inserts in lpMsgBuf.
 // ...
 // get the string.
 CString strMsg((LPCTSTR)lpMsgBuf);
 // Free the buffer.
 LocalFree( lpMsgBuf );

 strMsg.TrimRight(_T("\r\n"));
 return strMsg;
}

/////////////////////////////////////////////////////////////////////////////
//
// IN
// DWord dwError  錯誤號,默認值(0xFFFFFFFF)表示直接獲取本線程的最後錯誤號
//
// OUT
// CString    系統生成的錯誤信息串以及錯誤號的十進制值
//
static CString GetErrorMsgAndCode(DWord dwError = 0xFFFFFFFF)
{
 dwError = (dwError == 0xFFFFFFFF) ? GetLastError() : dwError;

 CString strMsg;
 strMsg.Format(_T("%s (%d)"), GetErrorMsg(dwError), dwError);
 return strMsg;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved