2017-01-19 16:23:59 -05:00
|
|
|
#include "STDInclude.hpp"
|
|
|
|
|
|
|
|
namespace Utils
|
|
|
|
{
|
2020-12-09 14:13:34 -05:00
|
|
|
Library::Library(const std::string& buffer, bool _freeOnDestroy) : _module(nullptr), freeOnDestroy(_freeOnDestroy)
|
2017-01-19 16:23:59 -05:00
|
|
|
{
|
2020-12-09 14:13:34 -05:00
|
|
|
this->_module = LoadLibraryExA(buffer.data(), nullptr, 0);
|
2017-01-19 16:23:59 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
Library::~Library()
|
|
|
|
{
|
2017-03-26 12:00:06 -04:00
|
|
|
if (this->freeOnDestroy)
|
2017-01-19 16:23:59 -05:00
|
|
|
{
|
2017-03-26 12:00:06 -04:00
|
|
|
this->free();
|
2017-01-19 16:23:59 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-18 11:36:01 -04:00
|
|
|
bool Library::is_valid() const
|
2017-01-19 16:23:59 -05:00
|
|
|
{
|
2021-07-18 11:36:01 -04:00
|
|
|
return this->_module != nullptr;
|
2017-01-19 16:23:59 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
HMODULE Library::getModule()
|
|
|
|
{
|
2020-12-09 14:13:34 -05:00
|
|
|
return this->_module;
|
2017-01-19 16:23:59 -05:00
|
|
|
}
|
2017-03-26 12:00:06 -04:00
|
|
|
|
|
|
|
void Library::free()
|
|
|
|
{
|
2021-07-18 11:36:01 -04:00
|
|
|
if (this->is_valid())
|
2017-03-26 12:00:06 -04:00
|
|
|
{
|
|
|
|
FreeLibrary(this->getModule());
|
|
|
|
}
|
|
|
|
|
2020-12-09 14:13:34 -05:00
|
|
|
this->_module = nullptr;
|
2017-03-26 12:00:06 -04:00
|
|
|
}
|
2017-01-19 16:23:59 -05:00
|
|
|
}
|