iw4x-client/src/Utils/Library.cpp

38 lines
563 B
C++
Raw Normal View History

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
}
}
bool Library::valid()
{
return (this->getModule() != nullptr);
}
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()
{
if (this->valid())
{
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
}