在 CI 中,可以通过让共享库实现以下接口来编写插件:
extern "C" int initialize(SomeArgument * state);
extern "C" int shutdown(SomeArgument * state);
显然这是一个非常高级的界面,但我认为它明白了这一点。我听说反射的一个很好的用途是编写插件,但是为什么这会比我这里的更好呢?使用这样的接口具有以下优点:
- 更快(反射不快,查找方法和间接调用)
- 内存(反射有内存开销)
- 直截了当(插件的入口/出口点非常明显)
我只是错过了什么吗?