tools
読み取り中…
検索中…
一致する文字列を見つけられません
DLL< R, Args > クラステンプレート

DLL から関数を遅延バインディングで呼び出すファンクターテンプレートクラス [詳解]

#include <dll.h>

公開メンバ関数

 DLL (HMODULE hModule, std::string functionName)
 コンストラクタ
operator() (Args... args)
 関数を呼び出す(初回は GetProcAddress で解決)

詳解

template<typename R, typename... Args>
class DLL< R, Args >

DLL から関数を遅延バインディングで呼び出すファンクターテンプレートクラス

テンプレート引数
R関数の戻り値型
Args関数の引数型(パック)

初回呼び出し時に GetProcAddress で関数ポインタを解決し、その後はキャッシュした ポインタを使って呼び出します。

HMODULE hMod = LoadLibrary("example.dll");
DLL<int, const char*> myFunc(hMod, "MyFunction");
int result = myFunc("hello");
DLL(HMODULE hModule, std::string functionName)
コンストラクタ
Definition dll.h:42

dll.h35 行目に定義があります。

構築子と解体子

◆ DLL()

template<typename R, typename... Args>
DLL< R, Args >::DLL ( HMODULE hModule,
std::string functionName )
inline

コンストラクタ

引数
hModule関数を検索する DLL モジュールハンドル
functionName取得する関数名

dll.h42 行目に定義があります。

関数詳解

◆ operator()()

template<typename R, typename... Args>
R DLL< R, Args >::operator() ( Args... args)
inline

関数を呼び出す(初回は GetProcAddress で解決)

引数
args関数に渡す引数
戻り値
関数の戻り値
例外
std::runtime_error関数が見つからない場合

dll.h50 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: