LINUX.ORG.RU

«Заглушки» для неимплементированых функий.


0

0

Хотелось бы написать программу с кучей плагинов, когда каждый плагин имплементирует какую либо одну функцию. Возможно ли сделать так что при первом вызове функции funcXYZ() программа прошлась по плагинам и проверила есть ли такая и при последующих вызовах использовала найденную фунцкию. В принципе можно декларировать поинтер на функцию *funcXVZ() который вначале будет указывать на некую "заглушку" которая и будет искать реальную имплементацию и подставлять ее в поинтер. Дело в том, что эта заглушка должна знать имя функиции и адрес указателя на нее, в принципе можно сделать ето с помосщу марко. Вопрос, можно ли это сделать без препроцессора, так, чтобы все осуществлялось в run-time? Можно ли избавиться от декларации функций вообще, так что бы любая неимплементировання функция автоматом вызывала заглушку (это уже другая заглушка, с простым сообщением об ошибке)?


Сделай класс PluginProxy, который будет динамически загружать функции из .so через dlopen и если такая находится - вызывать ее.

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