Microsoft Windows interface for using dynamic libraries. More...
#include <dynamic_library_traits_win32.hpp>
Public Types | |
typedef HMODULE | handle |
Type of the system handle to the library. | |
Static Public Member Functions | |
static handle | open (const std::string &name) |
Open a library. | |
static handle | auto_open (const std::string &name) |
Open the current program. | |
static void | close (handle h) |
Close a library. | |
template<class T > | |
static T | get_symbol (handle h, const std::string &name) |
Get a symbol from a library. | |
static bool | have_symbol (handle h, const std::string &name) |
Tell if a symbol is in the library. | |
static bool | valid_handle (handle h) |
Tell if an handle is a valid library handle. |
Microsoft Windows interface for using dynamic libraries.
Definition at line 45 of file dynamic_library_traits_win32.hpp.
typedef HMODULE claw::dynamic_library_traits_win32::handle |
Type of the system handle to the library.
Definition at line 49 of file dynamic_library_traits_win32.hpp.
static handle claw::dynamic_library_traits_win32::auto_open | ( | const std::string & | name ) | [inline, static] |
Open the current program.
name | The name of the current program. |
Definition at line 69 of file dynamic_library_traits_win32.hpp.
{ return LoadLibrary( name.c_str() ); } // dynamic_library_traits_win32::auto_open()
static void claw::dynamic_library_traits_win32::close | ( | handle | h ) | [inline, static] |
Close a library.
h | The handle of the library to close. |
Definition at line 79 of file dynamic_library_traits_win32.hpp.
{
FreeLibrary(h);
} // dynamic_library_traits_win32::close()
static T claw::dynamic_library_traits_win32::get_symbol | ( | handle | h, |
const std::string & | name | ||
) | [inline, static] |
Get a symbol from a library.
h | Handle of the library. |
name | The name of the symbol to load. |
Definition at line 91 of file dynamic_library_traits_win32.hpp.
{ /* HACK : ISO standard doesn't allow to cast from a pointer to an object to a pointer to a function. */ T result; *(FARPROC*)(&result) = GetProcAddress( h, name.c_str() ); return result; } // dynamic_library_traits_win32::get_symbol()
static bool claw::dynamic_library_traits_win32::have_symbol | ( | handle | h, |
const std::string & | name | ||
) | [inline, static] |
Tell if a symbol is in the library.
h | Handle of the library. |
name | The name of the symbol to find. |
Definition at line 107 of file dynamic_library_traits_win32.hpp.
{ return GetProcAddress( h, name.c_str() ) != NULL; } // dynamic_library_traits_win32::have_symbol()
static handle claw::dynamic_library_traits_win32::open | ( | const std::string & | name ) | [inline, static] |
Open a library.
name | The name of the library to open. |
Definition at line 58 of file dynamic_library_traits_win32.hpp.
{ return LoadLibrary( name.c_str() ); } // dynamic_library_traits_win32::open()
static bool claw::dynamic_library_traits_win32::valid_handle | ( | handle | h ) | [inline, static] |
Tell if an handle is a valid library handle.
h | The handle to test. |
Definition at line 117 of file dynamic_library_traits_win32.hpp.
{ return h != NULL; } // dynamic_library_traits_win32::valid_handle()