#pragma once namespace spoofcall { void* get_spoofcall_proxy(const void* funcAddr); template static T invoke(size_t funcAddr, Args ... args) { return static_cast(get_spoofcall_proxy(reinterpret_cast(funcAddr)))(args...); } template static T invoke(void* funcAddr, Args ... args) { return static_cast(get_spoofcall_proxy(funcAddr))(args...); } }