interface IBeeper { virtual void Beep() = 0; ~IBeeper(){} };
IBeeper*CreateBeepInterface();
DeleteBeepInterface(IBeeper*p);
とでもインターフェースを定義しておき、共通とする。

んで、プラグイン側では、インターフェースを実装する。
class CBeeper : public IBeeper { void Beep() { .... } };
IBeeper*CreateBeepInterface() { return new CBeeper; }
DeleteBeepInterface(IBeeper*p){ delete p; }

それだけ。