This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

View file

@ -0,0 +1,43 @@
#include "StarDynamicLib.hpp"
#include "StarFormat.hpp"
#include "StarString_windows.hpp"
#include <windows.h>
namespace Star {
class PrivateDynLib : public DynamicLib {
public:
PrivateDynLib(void* handle)
: m_handle(handle) {}
~PrivateDynLib() {
FreeLibrary((HMODULE)m_handle);
}
void* funcPtr(const char* name) {
return (void*)GetProcAddress((HMODULE)m_handle, name);
}
private:
void* m_handle;
};
String DynamicLib::libraryExtension() {
return ".dll";
}
DynamicLibUPtr DynamicLib::loadLibrary(String const& libraryName) {
void* handle = LoadLibraryW(stringToUtf16(libraryName).get());
if (handle == NULL)
return {};
return make_unique<PrivateDynLib>(handle);
}
DynamicLibUPtr DynamicLib::currentExecutable() {
void* handle = GetModuleHandle(0);
starAssert(handle);
return make_unique<PrivateDynLib>(handle);
}
}