クラス langedge::DllLoader

DLL をロードし、アクセスするためのラッパークラス. [詳細]

#include <dll_loader.hpp>

langedge::DllLoaderに対する継承グラフ

Inheritance graph
[凡例]
すべてのメンバ一覧

Public メソッド

 DllLoader (const char *dllpath=0)
 コンストラクタ.
 ~DllLoader ()
 デストラクタ (DLLの解放).
void loadLibrary (const char *dllpath)
 DLLのロード.
void freeLibrary ()
 DLLの解放.
bool isLoaded () const
 DLLはロードされているか.
FARPROC getProcAddress (const char *procname) const
 エクスポートされた関数のアドレスを取得.

説明

DLL をロードし、アクセスするためのラッパークラス.

DLL ロードしたり、エクスポートされている関数を呼び出したり、DLL をアンロード したりするためのラッパークラス。
使用例:

 1. ラッパーオブジェクト生成
    DllLoader loader;

 2. DLLのロード: loadLibrary()
    loader.loadLibrary( "sample.dll" );

 3. エクスポートされている関数のポインタの取得: getProcAddress()
    // ファクトリ関数(CreateInstance)のポインタ取得の例
    typedef Interface* (*FP_CREATE_INSTANCE)();
    FP_CREATE_INSTANCE pCreateInstance = (FP_CREATE_INSTANCE)loader.getProcAddress( "CreateInstance" );

    エクスポートされた関数を扱うには、 DllProc を使うとよい。

 4. DLLの解放: freeLibrary()
    // DLL を明示的に free することができる。
    // DLLを解放したラッパーオブジェクトは再利用することができる。(2 に戻る)
    loader.freeLibrary();

 5. ラッパーオブジェクトの破棄
    デストラクト時、まだDLLが解放されていなければ、自動的に DLL を free する。
 
コンストラクタや loadLibrary() の呼び出し時に、 LoadLibraryError 例外が発生する可能性があることに注意。

例:

dll_sample_test.cpp.


コンストラクタとデストラクタ

langedge::DllLoader::DllLoader const char *  dllpath = 0  )  [inline]
 

コンストラクタ.

引数 dllpath が NULL でなければ、DLLのロードも行う。

引数:
dllpath ロードするDLLのパス。NULLならロードしない。
例外:
LoadLibraryError DLLのロードに失敗した

langedge::DllLoader::~DllLoader  )  [inline]
 

デストラクタ (DLLの解放).

ロードしたライブラリを解放する。 すでに freeLibrary() によって解放されていれば何もしない。


関数

void langedge::DllLoader::loadLibrary const char *  dllpath  )  [inline]
 

DLLのロード.

引数:
dllpath ロードするDLLのパス
例外:
LoadLibraryError DLLのロードに失敗した

void langedge::DllLoader::freeLibrary  )  [inline]
 

DLLの解放.

ロードしたライブラリを free する。

bool langedge::DllLoader::isLoaded  )  const [inline]
 

DLLはロードされているか.

戻り値:
true ロードされている
false ロードされていない

FARPROC langedge::DllLoader::getProcAddress const char *  procname  )  const [inline]
 

エクスポートされた関数のアドレスを取得.

引数:
procname 関数の名前
戻り値:
関数ポインタ


このクラスの説明は次のファイルから生成されました:
正規表現ライブラリ lei_jregexに対してWed May 11 15:29:32 2005に生成されました。  doxygen 1.4.2