сменная архитектура базирующийся c/c ++ приложение

Я должен знать, как начать писать приложение на основе сменной архитектуры. Я имею в виду, как написать основной код и позволить другим разработать приложение путем добавления плагинов, которые они пишут. Я знаю, что существуют некоторые проблемы при этом в C++. большинство людей использует другой язык, такой как Python для добавления плагинов к их приложению C++.

8
задан ereOn 25 May 2010 в 09:50
поделиться

3 ответа

Думаю, это не тот ответ, который вы ожидаете, но вы можете попробовать изучить исходники Rainmeter. Он написан на C++ (некоторые места можно было бы сделать лучше, на мой взгляд, но в целом нормально), и все приложение сделано так, что оно просто обрабатывает плагины.

Даже простой API делается через плагины, есть также куча примеров плагинов, написанных кем-то другим (я тоже так делал, однажды).

Я думаю, вы можете изучить много новых приемов в разработке на основе плагинов, глядя на другие приложения.

Также стоит упомянуть, что еще одним хорошим примером является Miranda IM.

Edit: Кроме того, если бы у меня была такая же задача, я бы добавил python (или что-то подобное) в свое приложение и использовал его в качестве языка для SDK (например, используя boost::python).

4
ответ дан 5 December 2019 в 18:57
поделиться

не могли бы вы определить точки доступа в вашем приложении, с которыми внешнее приложение могло бы общаться?

допустим, вы определяете какой-то механизм именованных труб или TCP/IP сокетов, где внешнее приложение будет вызывать этот API для манипулирования вашим приложением?

учитывая, что вам нужно зарегистрировать эти плагины в основном приложении, прежде чем позволить им использовать ваше приложение. вы могли бы даже добавить публичные частные сертификаты для аутентификации происхождения этого плагина (т.е. подписать плагин закрытым ключом, где экземпляры вашего приложения будут проверяться по открытому ключу)

.
1
ответ дан 5 December 2019 в 18:57
поделиться

Вы должны :

  • определить интерфейс
  • загрузить свой плагин и дать ему этот интерфейс

Ваш плагин сможет общаться с главным приложением через этот интерфейс. Это означает, что вы должны тщательно продумать, что вы хотите, чтобы делал ваш плагин.

Вам, вероятно, придется поддерживать различные версии интерфейса, если ваше хост-приложение будет меняться, и вы будете добавлять функции.

4
ответ дан 5 December 2019 в 18:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: