LINUX.ORG.RU

Plug In?


0

0

Привет. Хочется иметь динамически загружаемые модули (через dlopen()), а модулях некий рабочий класс СCustomClass. Только вот беда в том, что я могу, конечно, открыть shared object lib*.so даже позвать из shared object'а функцию типа g_pClass = СCustomClass* GetCustomClass() { return new СCustomClass(); }, но что с этим указателем на объект делать дальше - ума не приложу, реализация-то в *.so, и со мной она не должна линковаться, так что все мои попытки позвать у созданного объекта какой-нибудь метод g_pClass -> Play() обречены на провал. Какие могут быть решения?


Re: Plug In?

Ну, понятно, у меня при тааком раскладе даже executable не соберется :(

Czar ()

Re: Plug In?

1. Тебе это обязательно делать на С++? 2. Если да, то есть способ. Сделать реализацию базового класса в твоей проге как некий абстрактный класс, назначение которого - определять интерфейс. Класс полученный из плугина должен быть потомком базового. Если понадобится полученный из плугина указатель всегда можно привести к нужному типу.

Banshee ()
Ответ на: Re: Plug In? от Banshee

Re: Re: Plug In?

Спасибо, работает :)

Czar ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.