1
0

feat: finish pipe operator

This commit is contained in:
2025-11-27 20:48:35 +08:00
parent 89b7afb33f
commit 9af21b514a
6 changed files with 223 additions and 31 deletions

View File

@@ -21,13 +21,29 @@ namespace Basalt::Presenter {
#if defined(BASALT_OS_WINDOWS)
using Handle = HMODULE;
#else
using Handle = void *;
using Handle = void*;
#endif
public:
DllLoader(DllKind kind, const std::basic_string_view<BSCHAR> filename);
~DllLoader();
public:
template<typename T>
T* CreateInstance() {
if (!m_Handle) return nullptr;
using Fct = T* (*) ();
constexpr char EXPOSE_FUNC_NAME[] = "BSCreateInstance";
#if defined(BASALT_OS_WINDOWS)
auto fct = (Fct) GetProcAddress(m_Handle, EXPOSE_FUNC_NAME);
#else
auto fct = (Fct) dlsym(m_Handle, EXPOSE_FUNC_NAME);
#endif
return fct();
}
private:
Handle m_Handle;
};