15#include <AUI/IO/APath.h>
16#include <AUI/Common/SharedPtr.h>
17#include <AUI/Common/AException.h>
27class API_AUI_CORE AProgramModule {
31 AProgramModule(
const AProgramModule&) =
delete;
34 AProgramModule(HMODULE handle) noexcept : mHandle(handle) {}
36 using ProcRawPtr = void(*)();
38 class API_AUI_CORE LoadException :
public AException {
40 explicit LoadException(
const AString& message) : AException(message) {}
41 virtual ~LoadException() =
default;
47 ProcRawPtr getProcAddressRawPtr(
const AString& name)
const noexcept;
49 template <
typename Function>
51 Function* getProcAddress(
const AString& name)
const noexcept {
52 return reinterpret_cast<Function*
>(getProcAddressRawPtr(name));
static _< AProgramModule > load(const AString &path)
Loads a dynamic load library (shared object).
static AString getDllExtension()
Extension of a dynamic load library of current platform.
Represents a Unicode character string.
Definition AString.h:38
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:179