Как создать архитектуру плагина, например, в Minecraft bukkit/spigot, на самом деле правильно использовать API [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Как создать архитектуру плагина, например, в Minecraft bukkit/spigot, на самом деле правильно использовать API [закрыто]

Сообщение Anonymous »

Мой код представляет полную архитектуру, и его можно найти здесь: PluginManager
Я пытаюсь воссоздать систему плагинов Minecraft на Java, но на C++. Я знаю, что я мог бы просто связать полностью открытый PluginManagerExample с плагинами и предоставить им заголовок и файл .lib.
Однако на более позднем этапе производства я хочу иметь четко разделенные проекты. Если пойти по этому пути, мне потребуется скопировать и вставить файлы заголовков и файлы .lib для отладки и выпуска в репозиторий API плагинов каждый раз, когда я выпускаю новую версию. Я не уверен, является ли это предполагаемым или рекомендуемым подходом.
Примечание: я создал свой собственный мод и покончил с ним, но теперь многие люди попросили меня предоставить API. Я хотел бы воссоздать что-то похожее на Spigot, только на C++.
Поэтому у меня есть несколько вопросов:
  • Как лучше всего предоставить плагинам доступ к моему API?
    Я нашел два возможных подхода, но второй мне не нравится, и с первым я сейчас застрял:

    Предоставьте заголовки и .lib.
  • После создания плагина предоставьте ему PluginContext, в котором хранятся адреса всех функций API в стиле C.
[*]Если первый подход является единственно разумным, как следует структурировать репозитории и за что должен отвечать каждый репозиторий?

[*]Является ли существующий код PluginManager хотя бы достойным?
Я знаю, что класс Singleton не нужен — это всего лишь остаток от предыдущих экспериментов. Меня также не устраивают возвращаемые значения статуса, особенно в функциях unload_all и reload_all.



Подробнее здесь: https://stackoverflow.com/questions/798 ... ally-the-a

Вернуться в «C++»