ail now builds on Linux
[ail.git] / ail / module.cpp
blob9877acd85905a68ebef0243052d4546979ab9b96
1 #include <ail/module.hpp>
3 #ifdef AIL_WINDOWS
5 namespace ail
7 dynamic_module::dynamic_module():
8 is_loaded(false)
12 dynamic_module::~dynamic_module()
14 unload();
17 bool dynamic_module::load(std::string const & new_path)
19 module_handle = ::LoadLibrary(new_path.c_str());
20 is_loaded = module_handle != 0;
21 if(is_loaded)
22 path = new_path;
23 return is_loaded;
26 void dynamic_module::unload()
28 if(is_loaded)
30 ::FreeLibrary(module_handle);
31 is_loaded = false;
35 bool dynamic_module::get_function(std::string const & name, void * & output)
37 if(!is_loaded)
38 return false;
40 output = ::GetProcAddress(module_handle, name.c_str());
41 return output != 0;
45 #endif