Почему я должен изучать COM? - PullRequest
       29

Почему я должен изучать COM?

6 голосов
/ 20 декабря 2009

В последнее время я много слышу о COM на моей работе. Я также узнал, что COM стар. COM устарел. У COM нет будущего. Это тоже правда?

Я хочу изучать COM, потому что я хочу знать, в чем суета, но я не могу убедить себя, что это веская причина, чтобы тратить столько времени и изучать его.

Итак, кто-нибудь может сказать мне:

  1. Почему я должен изучать COM?
  2. Как только я изучу COM, что я могу сделать, используя его? Я имею в виду его приложения.

Ответы [ 4 ]

8 голосов
/ 20 декабря 2009

Я просто не вижу, чтобы COM уходил в ближайшее время. Если вы хотите быть экспертом по Windows, вы должны понимать, как это работает.

4 голосов
/ 20 декабря 2009

COM определенно стоит изучить хотя бы до некоторого уровня, если вы являетесь разработчиком Windows. Другой распространенный случай его использования, помимо уже упомянутых, заключается в реализации двоичных поведений и BHOs ​​ для Internet Explorer. Они оба реализованы с использованием COM-интерфейсов между IE и вашим кодом.

Я также хотел бы порекомендовать несколько ресурсов для изучения COM:

  1. Don Box's Essential COM . Это отличное описание того, почему COM такой, какой он есть, и действительно помогает вам глубже понять, что происходит. Если вы потратите время на прочтение этой книги, у вас будет фундаментальное представление о внутреннем устройстве СОМ, которое будет вам очень полезно.
  2. Эти две статьи: { 1 , 2 } ... являются очень хорошим обсуждением конкретной темы апартаментов COM, на которую ссылаются как на «мучительно раздражающие» (несправедливо imho) в ответе MarkR.
4 голосов
/ 20 декабря 2009

Вы должны узнать достаточно о COM, чтобы знать, что больше не хотите изучать.

Детали COM - особенно из многопоточного приложения или приложения C ++ - мучительно раздражают, и я бы никому их не пожелал (я сам их не знаю, но знаю достаточно, чтобы это знать).

Поэтому, если вам нужно вызвать библиотеку COM, вы должны выучить достаточно COM, чтобы это сделать, а затем остановитесь. В идеале, используйте язык, такой как C # или Delphi, где некоторые (или, надеюсь, большинство) деталей обрабатываются для вас относительно прозрачно.

Существует множество COM-библиотек, но если вы чувствуете, что хотите использовать одну, вам следует обратиться к ее конкретной документации, чтобы узнать, как это сделать - у нее, вероятно, есть разумный пример, который вы можете просто адаптировать для своего собственного использования без особых усилий. Если это не так, то это явно не очень хорошо и не должно использоваться.

4 голосов
/ 20 декабря 2009

Learning COM (или, по крайней мере, au fait с его концепциями) означает, что вы можете интегрироваться с тысячами существующих компонентов, включая Microsoft Word и Excel.

Я работаю в основном в области Java, но, обладая небольшим знанием COM, я могу эффективно взаимодействовать с Word и Excel (в частности) для программного создания / чтения документов. У меня нет глубоких знаний, но у меня есть немного, и это существенно повышает мою производительность.

...