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");