SysErrorMessage - C++ Builder

C++ Builder 参考手册 ➙ System::Sysutils ➙ SysErrorMessage


把操作系统错误编码转成错误信息字符串

头文件:#include
命名空间:System::Sysutils
函数原型:

System::UnicodeString __fastcall SysErrorMessage(unsigned ErrorCode, NativeUInt AModuleHandle = 0);

参数:

  • ErrorCode:通过 GetLastError() 获取的操作系统返回的错误编码;
  • AModuleHandle:如果是 Windows 操作系统,可以通过这个参数指定字符串资源的动态库句柄,其他操作系统无此参数;

返回值:

  • 字符串,通过 GetLastError() 获取的操作系统返回的错误编码转成的错误信息;
  • 只有 Windows 操作系统有 AModuleHandle 参数,其他系统没有这个参数;
  • Windows 操作系统:函数内部通过 FormatMessage 获取错误信息,参数 AModuleHandle 传递给 FormatMessage,如果参数 AModuleHandle 为 0,从操作系统当前语言获取错误信息;其他操作系统:函数通过 strerror_r 实现。

例:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HANDLE hFile = CreateFile(L"D:\\Temp\\Hsuanlu.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if(hFile == INVALID_HANDLE_VALUE)
    {
        UnicodeString s = SysErrorMessage(GetLastError());
        ShowMessage(s);
        return;
    }
    CloseHandle(hFile);
}

运行结果:

运行结果

相关:

  • System::Sysutils::RaiseLastOSError
  • System::Sysutils::CheckOSError
  • System::Sysutils::Win32Check
  • System::Sysutils::ShowException
  • System::Sysutils::ExceptionErrorMessage
  • System::Sysutils::OutOfMemoryError
  • System::Sysutils::Abort
  • System::Sysutils::EAbort
  • System::Sysutils
  • System::ExceptAddr
  • System::ExceptObject
  • System
  • Vcl::Forms::TApplication::ShowException
  • Vcl::Forms

C++ Builder 参考手册 ➙ System::Sysutils ➙ SysErrorMessage

你可能感兴趣的:(SysErrorMessage - C++ Builder)