/** * @file dl.hpp * @brief J Library DL ヘッダファイル。 * @copyright 2001 - 2024 Nomura Kei * @depends * j/lang/object.hpp */ #ifndef J_LANG_DL_HPP #define J_LANG_DL_HPP #include <memory> #include <j/lang/object.hpp> namespace j { namespace lang { #if (IS_WINDOWS) typedef HINSTANCE dl_handle_t; typedef FARPROC WINAPI dl_func_t; #else typedef void *dl_handle_t; typedef void *dl_func_t; #endif class Dl final : public Object { public: // コンストラクタ Dl(const String &fileName) noexcept; // コピーコンストラクタ Dl(const Dl &obj) noexcept; // ムーブコンストラクタ Dl(Dl &&obj) noexcept; // デストラクタ ~Dl() noexcept; // コピー代入演算子 Dl &operator=(const Dl &obj) noexcept; // ムーブ代入演算子 Dl &operator=(Dl &&obj) noexcept; // 文字列表現取得 String toString() const noexcept; // 関数取得 dl_func_t sym(const String &symbol); private: dl_handle_t handle; }; } // namespace lang } // namespace j #endif // J_LANG_DL_HPP