Friday, April 5, 2013

如何獲得GetLastError()的文字訊息

[Reference] http://ascii-iicsa.blogspot.ca/2010/09/getlasterror.html

int main()
{
  CString strMsg;

  LPVOID lpMsgBuf;

  FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
                 FORMAT_MESSAGE_FROM_SYSTEM |
                 FORMAT_MESSAGE_IGNORE_INSERTS,
                 NULL,
                 GetLastError(), // 這裡也可以改成你想看的代碼值,例如直接打8L可得"空間不足"
                 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
                 (LPTSTR) &lpMsgBuf,
                 0,
                 NULL);

  strMsg.Format( _T("錯誤訊息:%s\n錯誤代碼:0x%x"), 
                 lpMsgBuf,     
                 GetLastError());

  LocalFree(lpMsgBuf); // 記得free掉空間

  return TRUE;
}


No comments:

Post a Comment

[Qt] 執行檔需要哪些 Dll?

 1. 使用 Qt  的 windeployqt.exe 工具 (在 C:\Qt\Qt5.14.1\5.14.1\msvc2017\bin\)。   a. 把執行檔 myProgram.exe 放在某個資料夾。   b. 在檔案總管這個資料夾按 Shift 和滑鼠右鍵,開啟 Po...