diff options
Diffstat (limited to 'deimos/core/os_win32.cpp')
-rw-r--r-- | deimos/core/os_win32.cpp | 16 |
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;
}
};
|