GetProcAddressで戻り値をキャストするのが面倒くさいので少し考えてみた
こんな感じでどうでしょう。
struct ProcAddress { ProcAddress(HMODULE module, LPCSTR name) : p_(0) { p_ = ::GetProcAddress(module, name); } template<class T> operator T() const { return reinterpret_cast<T>(p_); } FARPROC p_; };
こうやって使います。
HMODULE module = 0; typedef void (__stdcall *Func)(); Func f = ProcAddress(module, "test");