SysErrorMessage - C++ Builder

C++ Builder 参考手册System::SysutilsSysErrorMessage


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

头文件:#include <System.SysUtils.hpp>
命名空间: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);
}

运行结果:

运行结果

相关:


C++ Builder 参考手册System::SysutilsSysErrorMessage

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容