- SysErrorMessage - C++ Builder
- C++ Builder 的字符串类型、字符类型、字符编码
- TInterfacedPersistent::AfterCons
- TInterfacedPersistent::QueryInte
- TInterfacedPersistent::~TInterfa
- TInterfacedPersistent::TInterfac
- TThread::NameThreadForDebugging
- TThread::Suspended - C++ Builder
- TThread::Terminate - C++ Builder
- TInterfacedObject - C++ Builder
C++ Builder 参考手册 ➙ System::Sysutils ➙ SysErrorMessage
把操作系统错误编码转成错误信息字符串
头文件:#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);
}
运行结果:

相关:
- 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
网友评论