その3つの引数のうち、1つはこっちですくに使わせてくれるのなら楽。でもたぶんそうでないのだろう。
マルチスレッドを考慮しなくてよければグローバル変数を使え。考慮する必要があるならTLSを使え。
テンプレートを使えばもっと汎用的にできる。
class Hoge {
public:
  void func(int, int, int);
};

namespace {
  void* ptr;
  void (Hoge::*mem_ptr)(int, int, int);

  void callEntry(int a, int b, int c) {
    (ptr->*mem_ptr)(a, b, c);
}

void call(Hoge& hoge, void (Hoge::*fn)(int, int, int)) {
  ptr = hoge;
}

int main(){
  Hoge hoge;
  call(hoge, &Hoge::func);
}

或いはメンバ関数を呼び出すための「サンク」を作る方法もある。