C++ Builder 参考手册 ➙ System::Sysutils ➙ LoadPackage
加载一个组件包 (.bpl)
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
NativeUInt __fastcall LoadPackage(const System::UnicodeString Name);
NativeUInt __fastcall LoadPackage(const System::UnicodeString Name, TValidatePackageProc AValidatePackage);
参数:
- Name:组件包文件名 (.bpl)
- AValidatePackage:检查重复单元时的回调函数,如果回调函数返回 true 将不进行检查重复单元;
返回值:
- 组件包的句柄;
- 如果加载组件包失败,抛出 EPackageError 异常;
- 有关这个函数的应用请参考 C++ Builder 创建和使用动态加载的包 (.bpl)
- LoadPackage 函数以动态库 (dll) 的方式打开文件,如果找不到文件或打开失败,抛出 EPackageError 异常,保留打开文件之前的 FPU 控制字 (精度、异常等),请参考 std::_control87、System::Math::SetExceptionMask、浮点数异常处理等相关内容;
打开文件之后,调用 InitializePackage 检查重复单元,和调用每个单元的初始化; - 检查如果有重复单元抛出 EPackageError 异常,通过回调函数 AValidatePackage 可以阻止检查重复单元和抛出这个异常;
- 调用每个单元的初始化函数 Initialize,如果单元里面没有 Initialize 函数,抛出 EPackageError 异常。
例1:
请参考 C++ Builder 创建和使用动态加载的包 (.bpl)。
例2:
请参考 GetPackageInfo 的例子,以及本文底部 “相关” 的内容和例子。
相关:
- System::Sysutils::LoadPackage
- System::Sysutils::UnloadPackage
- System::Sysutils::InitializePackage
- System::Sysutils::FinalizePackage
- System::Sysutils::GetModuleName
- System::Sysutils::GetPackageInfo
- System::Sysutils::GetPackageDescription
- System::Sysutils::GetPackageTargets
- System::Sysutils::EPackageError
- System::Sysutils
- System::Math::SetExceptionMask
- std::_control87
- C++ Builder 浮点数异常处理
- C++ Builder 创建和使用动态加载的包 (.bpl)
C++ Builder 参考手册 ➙ System::Sysutils ➙ LoadPackage