CLAW Library (a C++ Library Absolutely Wonderful) 1.5.5
Public Types | Static Public Member Functions

claw::dynamic_library_traits_win32 Class Reference

Microsoft Windows interface for using dynamic libraries. More...

#include <dynamic_library_traits_win32.hpp>

List of all members.

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.

Detailed Description

Microsoft Windows interface for using dynamic libraries.

Author:
Julien Jorge

Definition at line 45 of file dynamic_library_traits_win32.hpp.


Member Typedef Documentation

Type of the system handle to the library.

Definition at line 49 of file dynamic_library_traits_win32.hpp.


Member Function Documentation

static handle claw::dynamic_library_traits_win32::auto_open ( const std::string &  name) [inline, static]

Open the current program.

Parameters:
nameThe name of the current program.
Returns:
The handle on the loaded library.

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.

Parameters:
hThe handle of the library to close.

Definition at line 79 of file dynamic_library_traits_win32.hpp.

    {
      FreeLibrary(h);
    } // dynamic_library_traits_win32::close()
template<class T >
static T claw::dynamic_library_traits_win32::get_symbol ( handle  h,
const std::string &  name 
) [inline, static]

Get a symbol from a library.

Parameters:
hHandle of the library.
nameThe 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.

Parameters:
hHandle of the library.
nameThe 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.

Parameters:
nameThe name of the library to open.
Returns:
The handle on the loaded library.

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.

Parameters:
hThe handle to test.

Definition at line 117 of file dynamic_library_traits_win32.hpp.

    {
      return h != NULL;
    } // dynamic_library_traits_win32::valid_handle()

The documentation for this class was generated from the following file: