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