Мы используем соглашение c-naming и семейство функций dlopen\LoadLibrary
для загрузки плагина (.dll или .so), находим 3 необходимых метода (create_plugin()
, destroy_plugin()
и get_type()
.
Разработчик плагина просто должен убедиться, что его эквивалент (на каком бы языке он не использовал) виден в библиотеке
extern "C" PLUGIN_API plugin_interface* create_plugin( arg_pack* );
extern "C" PLUGIN_API void destroy_plugin( plugin_interface* );
extern "C" PLUGIN_API const char* get_type();
В зависимости от того, для чего нужен ваш плагин, arg_pack можно заменить конкретными аргументами.
Ознакомьтесь с документацией для [gmodule][1]
, чтобы увидеть кроссплатформенную библиотеку, которая делает подобные вещи.