что эквивалентно COM в Mac OS? - PullRequest
4 голосов
/ 27 октября 2009

Я новичок в мире программирования на Mac. Может кто-нибудь сказать мне, что такое эквивалент COM-компонентов многократного использования в Mac, и какие-то ссылки на хороший ресурс для начала (в создании COM-подобных компонентов многократного использования и обращении этих компонентов из вызывающего приложения)? Спасибо.

Пояснение:
- Я хотел бы знать, существует ли подобная технология, которая поддерживается на уровне ОС.
- Я задал вопрос, потому что я хочу перенести некоторые из моих приложений (которые используют существующие библиотеки типов из Windows, а также те, которые я делаю) на Mac.
- Возможно ли, что я создаю классы-оболочки для моих существующих (Window) библиотек типов и ссылаюсь на них из приложения Mac?

Ответы [ 6 ]

5 голосов
/ 27 октября 2009

Я думаю, что Начало работы с Interapplication Communication из Mac Dev Center было бы хорошим началом. Насколько я могу судить, не существует прямого эквивалента COM / OLE во всей ОС, но XPCOM и CORBA могут использоваться для некоторых сценариев.

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

3 голосов
/ 27 октября 2009

Нет ничего похожего на COM в Mac OS X (я полагаю, вы говорите об OS X, а не о классической Mac OS). Если вы хотите написать повторно используемые компоненты или приложения Какао, это действительно так просто, как:

  1. Напиши свои классы
  2. Создание проекта общей библиотеки
  3. Сборка библиотеки и распространение ее

Что касается связывания и встраивания частей СОМ-процессов в COM, то в действительности нет ничего стандартизированного.

3 голосов
/ 27 октября 2009

Какао / Objective-C объекты почти все, что вам нужно. На более высоком уровне NIB можно повторно использовать между приложениями, хотя я не думаю, что это широко делается.

Вы можете написать плагины для Interface Builder, которые будут использовать ваши собственные компоненты, такие как стандартные.

Apple Events и AppleScript являются стандартными технологиями IPC и сценариев.

Однако, в отличие от COM в мире Windows, на самом деле не существует стандартных соглашений для компонентов, которые взаимодействуют друг с другом через стандартные интерфейсы, живут в стандартных контейнерах, участвуют в транзакциях и т. Д. Аналогов для библиотеки типов или IDL нет. (хотя словарь сценариев может приблизиться).

3 голосов
/ 27 октября 2009

Ну, есть XPCOM .

1 голос
/ 27 октября 2009

Возможно, вы захотите проверить Mono . Хотя это не позволит вам напрямую повторно использовать свой существующий для Windows COM-код, он дает вам схожую парадигму повторно используемых компонентов в разных языках программирования (любых, имеющих компилятор CLI) и даже в разных операционных системах (например, Windows Mac, Linux).

Я бы также порекомендовал CocoaSharp для непосредственного подключения к родным библиотекам Mac OS X.

0 голосов
/ 27 октября 2016

Может быть CFPlugin .

от Apple :

Базовый базовый базовый объект CFPlugin реализует небольшой подмножество стандарта Microsoft Component Object Model (COM). COM позволяет создавать экземпляры функций и данных C в объектно-ориентированном манера во время выполнения.

Изначально он посвящен архитектуре плагина, но, похоже, его можно использовать в качестве COM-эквивалента, см. этот старый пост и главу 5 (Углеродные плагины) "Mac OS X Advanced Development Техника "Джо Зобкива. К сожалению, я не смог найти больше примеров.

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