summaryrefslogtreecommitdiff
path: root/deimos/core/os_win32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'deimos/core/os_win32.cpp')
-rw-r--r--deimos/core/os_win32.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/deimos/core/os_win32.cpp b/deimos/core/os_win32.cpp
index ca608d8..1c6b664 100644
--- a/deimos/core/os_win32.cpp
+++ b/deimos/core/os_win32.cpp
@@ -35,14 +35,30 @@ public:
}
};
+class Win32OsDllApiImpl : public OsDllApi
+{
+public:
+ OsDll* Open(gsl::czstring name) override
+ {
+ return std::bit_cast<OsDll*>(::LoadLibraryA(name));
+ }
+
+ void* GetSymbol(OsDll* dll, gsl::czstring name) override
+ {
+ return std::bit_cast<void*>(::GetProcAddress(std::bit_cast<HMODULE>(dll), name));
+ }
+};
+
class Win32OsApiImpl : public OsApi
{
Win32OsConsoleApiImpl m_console_api;
+ Win32OsDllApiImpl m_dll_api;
public:
Win32OsApiImpl()
{
console = &m_console_api;
+ dll = &m_dll_api;
}
};