Разница между "традиционным" COM и COM + (в службах компонентов) - PullRequest
6 голосов
/ 02 июня 2010

Под «традиционным» способом я имею в виду регистрацию DLL в реестре.

Похоже, есть другой способ настроить его, перейдя в mmc-> Службы компонентов-> Приложения COM + и добавив файл .tlb.

У меня есть библиотека COM, которая поддерживает оба метода. При установке он регистрируется в реестре как компонент COM и работает нормально. Однако, когда я добавил файл .tlb с помощью метода Службы компонентов, поведение, по-видимому, изменилось, и он начинает выдавать ошибки.

Я подозреваю, что это как-то связано с маршалингом и передачей объектов между процессами? (Извините, я действительно нуб в области COM)

Может кто-нибудь указать мне хороший ресурс, чтобы прояснить мое понимание?

Ответы [ 3 ]

10 голосов
/ 02 июня 2010

COM + (Component Services) предоставляет много инфраструктуры из коробки; например, COM + обеспечивает транзакции, безопасность, пул объектов и некоторые другие услуги.

Когда вы регистрируете COM-компонент в COM +, он запускается «Out Of Process»; в этом режиме вы гарантированно имеете прокси между вашим COM-сервером и его клиентами.

Лучшее место, где я могу больше узнать о COM +, это официальный сайт MS: http://msdn.microsoft.com/en-us/library/ms685978(VS.85).aspx

Надеюсь, это поможет.

5 голосов
/ 11 декабря 2012

COM - это объектная модель компонента, которая используется на локальном компьютере, но COM + - это функция Com Plus ActiveX. означает, что его можно использовать как удаленно.

COM + - это эволюция объектной модели компонентов (COM) и сервера транзакций Microsoft (MTS). DCOM: Распределенный-COM. Протокол, который позволяет создавать экземпляр COM-объекта на другом компьютере с того, который использует код

MTS: сервер транзакций Microsoft. Как MS координирует транзакцию на нескольких серверах.

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

COM + может использоваться для разработки распределенных приложений для Windows.

Если вы программист приложений, вы будете писать компоненты и интегрировать их как приложения. COM + предназначен в первую очередь для разработчиков Microsoft Visual C ++ и Microsoft Visual Basic.

3 голосов
/ 02 июня 2010

Согласен с предыдущим постом.

Одна вещь, которую нужно добавить: фактическая регистрация библиотеки типов (файл .tlb) является нормой и для COM, а не только для COM +. Библиотека типов генерируется автоматически компилятором IDL. Он содержит описание ваших интерфейсов и объектов.

Так что вы можете «импортировать» ваш COM-компонент в некоторый проект, и определения интерфейсов и объектов будут видимы.

...