#include <dll_loader.hpp>
langedge::DllLoaderに対する継承グラフ

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 をアンロード したりするためのラッパークラス。
使用例:
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 例外が発生する可能性があることに注意。
|
|
コンストラクタ. 引数 dllpath が NULL でなければ、DLLのロードも行う。
|
|
|
デストラクタ (DLLの解放). ロードしたライブラリを解放する。 すでに freeLibrary() によって解放されていれば何もしない。 |
|
|
DLLのロード.
|
|
|
DLLの解放. ロードしたライブラリを free する。 |
|
|
DLLはロードされているか.
|
|
|
エクスポートされた関数のアドレスを取得.
|
1.4.2