Я хотел знать, является ли этим возможный использовать COM-компонент в других платформах как Linux, и т.д.,
Мой вопрос состоит в том, что COM-компонент, как предполагается, регистрируется в OS & For, что ОС нужно что-то как реестр так, чтобы клиент мог использовать COM-компоненты.
Кто-либо может пролить свет на мой вопрос?
С технической точки зрения, COM - это просто архитектура, которая может быть реализована на любой платформе. Например, поиск зарегистрированных классов в реестре - это то, что вы могли бы аналогичным образом реализовать на любой другой платформе. Остальное касается библиотек DLL и MIDL, которые можно заставить работать на любой платформе.
Фактически, COM предназначен для Windows (и даже это довольно быстро умирает).
Если вы хотите иметь возможность создавать классы COM, указав «строку», и хотите, чтобы ОС могла искать правильную двоичную библиотеку для загрузки, а также создавать фактический класс (объект) COM, тогда некоторая форма регистрации не требуется.
Помимо этого, если вы хотите использовать только интерфейсы в стиле COM (интерфейсы, производные от IUnknown, IDispatch и т. Д.), Вы можете сделать это на любых языках C ++ (при условии, что реализация vtable этого компилятора C ++ совместима с COM ).
Наконец, некоторые возможности COM, такие как межпроцессное взаимодействие и удаленный вызов, предоставляются как часть ОС Windows. Вам нужно будет реализовать свои собственные, если эти возможности потребуются.
На странице Википедии на CORBA , кажется, есть ссылки на несколько вариантов. Проверьте раздел "См. Также".
Запись в википедии для Microsoft COM говорит в «Обзоре», что «стандарт интерфейса реализован на нескольких платформах», но не указывает, какие именно. Если вы ищете кросс-платформенный подход, вам может быть лучше использовать что-то вроде XPCOM .
Теоретический ответ - да, можно использовать компоненты COM на других платформах. Вот статья 1998 года о Сборка COM-компонентов в UNIX . Однако даже в те времена это не было популярным (или разумным!) Подходом.