Когда и почему нам нужно использовать COM? - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу знать, когда и зачем использовать COM?

Пожалуйста, дайте мне знать, в какой ситуации мне нужно использовать com вместо обычной DLL.

Ответы [ 2 ]

6 голосов
/ 14 сентября 2011

Во-первых, стоит отметить, что COM - довольно старая технология.Это значительно предшествует .NET, которые иногда предоставляют ту же функциональность.Однако, по сравнению с простой DLL, у нее есть несколько преимуществ, например:

  1. Он не имеет функционального интерфейса, но OO.Вы создаете объекты, а не вызываете экспортированные функции.
  2. Он поддерживает системные настройки безопасности, поэтому вы можете управлять доступом к COM-классу через настройки безопасности Windows.
  3. Он пересекает границы процесса - COM-сервер можетлибо в процессе пользователя, либо в отдельном.
  4. Пересекает границы машины, AKA DCOM.
  5. Пересекает границы языка.Протокол COM является двоичным, поэтому каждый язык, который его поддерживает, может использовать компоненты COM независимо от языка, на котором эти компоненты были созданы.
  6. Существует много языков, которые поддерживают COM, и на которых вы можете легко создавать и использоватьCOM-объекты.

Это всего лишь верхушка айсберга.Хотя COM устарел, он широко используется в Windows.Правильно ли вам использовать эти технологии в наши дни - это другой вопрос - это зависит от ваших конкретных потребностей.Но если вы программист Windows, вам все равно стоит ознакомиться с ним.Даже если вы не производите какой-либо COM-продукт, вы, скорее всего, будете его использовать.

1 голос
/ 14 сентября 2011

Вы используете COM в различных контекстах, таких как:

  1. взаимодействие с XML-API msxml3 / 4/6 (использование COM-объектов);

  2. встраивание элемента управления Internet Explorer WebBrowser (использование объектов COM);

  3. реализация расширений оболочки Shell, таких как контекстные меню (написание и использование объектов COM);

  4. реализация функции перетаскивания (запись и использование);

  5. с помощью диалоговых окон открытия / закрытия файлов на основе Vista (потребляет);

  6. с использованием ленточного API на основе Windows (потребляет).

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