显示错误信息

CString LookSysErrorString(DWORD dwError)
{
 CString sRet(_TEXT(""));

 HLOCAL hlocal = NULL;   // Buffer that gets the error message string
    // Get the error code's textual description
    BOOL fOk = FormatMessage(
         FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
         NULL, dwError, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
         (PTSTR) &hlocal, 0, NULL);
    if (!fOk) {
         // Is it a network-related error?
  HMODULE hDll = LoadLibraryEx(TEXT("netmsg.dll"), NULL,
        DONT_RESOLVE_DLL_REFERENCES);
  if (hDll != NULL) {
            FormatMessage(
               FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM,
               hDll, dwError, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
               (PTSTR) &hlocal, 0, NULL);
            FreeLibrary(hDll);
  }
 }

 if (hlocal != NULL) {
  sRet = (LPCTSTR) LocalLock(hlocal);
  LocalFree(hlocal);
 } else {
  sRet = _TEXT("Error number not found.");
 }

 return sRet;

}

你可能感兴趣的:(String,null,System,buffer,dll)