v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
43
source/core/StarDynamicLib_windows.cpp
Normal file
43
source/core/StarDynamicLib_windows.cpp
Normal 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);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue