CIでは、共有ライブラリに次のインターフェイスを実装させることでプラグインを作成できます。
extern "C" int initialize(SomeArgument * state);
extern "C" int shutdown(SomeArgument * state);
明らかに、これは非常に高レベルのインターフェースですが、私はそれが重要な意味を持っていると思います。リフレクションの良い使い方はプラグインを書くことだと聞きましたが、なぜそれが私がここに持っているものよりも優れているのでしょうか?このようなインターフェースを使用すると、次の利点があります。
- より高速(メソッドの検索と間接的な呼び出しの両方で、リフレクションは高速ではありません)
- メモリ(リフレクションにはメモリオーバーヘッドがあります)
- 簡単です(プラグインの入口/出口ポイントは直感的にわかります)
私は何かが足りないのですか?