Портативный C ++ Component Design - PullRequest
       3

Портативный C ++ Component Design

4 голосов
/ 26 февраля 2011

В прошлом я использовал сборки COM и .NET для разработки систем на основе компонентов.Теперь я собираюсь поработать над кросс-платформенным C ++-проектом и хочу также структурировать код по компонентам ...

Очевидно, что COM и .NET не вариант, так как COM не доступен нигде, кроме Windowsи сборки будут добавлять зависимости к фреймворку .NET, которые могут быть недоступны в целевой системе.

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

Существует ли какая-либо система / инфраструктура, которая допускает такую ​​архитектуру в C ++?

Ответы [ 4 ]

1 голос
/ 03 марта 2011

Если вы можете жить с зависимостью Qt (только основные библиотеки, без библиотек GUI), вы можете взглянуть на CTK Plugin Framework

Он лицензирован под Apache 2.0 и представляет собой динамическую систему компонентов C ++ с API, который почти идентичен OSGi.

1 голос
/ 26 февраля 2011

Я работал с такой системой в прошлом - мы в основном заново изобрели COM.Если вы заинтересованы в таком подходе, посмотрите эту замечательную статью: http://msdn.microsoft.com/en-us/library/ms809983.aspx

1 голос
/ 26 февраля 2011

В наборе Mozilla используется фреймворк, который называется XPCOM . Никогда не использовал его сам, но подразумевается, что он должен быть похож на Microsoft COM, но переносим. Это единственная система компонентов в процессе, которую я знаю, основанная на собственном коде; если вы работаете в Java, есть OSGi .

В наши дни большая часть программного обеспечения Unix использует модели распределенных компонентов, где компоненты живут в разных процессах. Нынешняя модная система выглядит так: DBus ; KDE3 использовал альтернативу под названием DCOP ; и, конечно, если вы хотите пойти по этому пути, есть старый добрый CORBA.

0 голосов
/ 26 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...