Skip to content

Releases: abin-z/DynamicLibLoader

v0.9.5

01 Jul 03:44
Compare
Choose a tag to compare

Release version 0.9.5

New Features:

  • Added has_symbol function to determine whether a symbol exists
  • Added get_variable function to get variables in a dynamic library, and throws an exception if the variable does not exist
  • Added try_get_variable function to get variables in a dynamic library, and returns nullptr if the variable does not exist
  • Supports default construction, added load function to support delayed loading of dynamic libraries

新功能:

  • 新增has_symbol函数, 用于判断符号是否存在
  • 新增get_variable函数, 用于获取动态库中的变量, 变量不存在抛异常
  • 新增try_get_variable函数, 用于获取动态库的变量, 变量不存在返回nullptr
  • 支持默认构造, 新增load函数, 支持延迟加载动态库

Key Features:

  • Cross-platform support: Compatible with Windows and POSIX (Linux/macOS).
  • RAII Resource Management: Loads the library on construction and unloads it on destruction.
  • Error Handling: Throws detailed std::runtime_error exceptions with platform-specific error messages when failing to load the library or symbols.
  • Symbol Caching: invoke() supports symbol caching for improved efficiency.
  • Cached and Uncached Interfaces: Use invoke() (cached) or invoke_uncached() (non-cached).
  • No Dependencies: Relies solely on the standard library.

主要特性:

  • 跨平台支持:兼容 Windows 和 POSIX(Linux/macOS)。
  • RAII 资源管理:在构造时加载库,并在析构时卸载。
  • 错误处理:当加载库或符号失败时,抛出详细的 std::runtime_error 异常,并附带平台特定的错误消息。
  • 符号缓存:invoke() 支持符号缓存,以提高效率。
  • 缓存和非缓存接口:使用 invoke()(缓存)或 invoke_uncached()(非缓存)。
  • 无依赖:仅依赖于标准库。

v0.9.2

19 Apr 07:02
Compare
Choose a tag to compare

Release version 0.9.2

Key Features:

  • Cross-platform support: Compatible with Windows and POSIX (Linux/macOS).
  • RAII Resource Management: Loads the library on construction and unloads it on destruction.
  • Error Handling: Throws detailed std::runtime_error exceptions with platform-specific error messages when failing to load the library or symbols.
  • Symbol Caching: invoke() supports symbol caching for improved efficiency.
  • Cached and Uncached Interfaces: Use invoke() (cached) or invoke_uncached() (non-cached).
  • No Dependencies: Relies solely on the standard library.

主要特性:

  • 跨平台支持:兼容 Windows 和 POSIX(Linux/macOS)。
  • RAII 资源管理:在构造时加载库,并在析构时卸载。
  • 错误处理:当加载库或符号失败时,抛出详细的 std::runtime_error 异常,并附带平台特定的错误消息。
  • 符号缓存:invoke() 支持符号缓存,以提高效率。
  • 缓存和非缓存接口:使用 invoke()(缓存)或 invoke_uncached()(非缓存)。
  • 无依赖:仅依赖于标准库。