Некоторые основные вопросы COM

Я только что закончил свою первую DLL-библиотеку COM-сервера. И все работает без сбоев. Так что я хотел бы пока продемонстрировать свое понимание и выслушать вашу критику.

1- Как просто работает COM? COM - «Цепочка вызовов»

Методы COM Lib -> Традиционный экспорт DLL -> Классы, инкапсулированные в COM DLL

2- В C ++ такие преимущества, как «интерфейс» в ООП, можно использовать только на уровне исходного кода. С COM эти преимущества можно использовать на двоичном уровне.

3- Некоторые иллюстрации, касающиеся интерфейса

& pInterface -------> pInterface ----------> Интерфейс -----------------> методы

  Ixx **         Ixx *      (method table)

 (void **)

Интерфейс - это структура данных в памяти. Это не что иное, как область памяти, содержащая таблицу методов.

Я правильно понимаю?

Спасибо за исправление.


person smwikipedia    schedule 13.05.2010    source источник


Ответы (2)


Мое понимание в порядке?

В некотором смысле, вы очень сильно резюмируете, поэтому трудно быть уверенным.

Если вы хотите знать COM на этом уровне, два лучших источника - это «Essential COM», Don Box (до Windows 2000, поэтому важные детали модели потоковой передачи «Rental» не соответствуют модели «Neutral»); и спецификация COM (от MS, много лет назад, и была в сети, но сейчас не может быстро найти ссылку).

person Richard    schedule 13.05.2010
comment
+1 За книгу Дона Бокса. Не только отличная книга по COM, но и действительно хорошо написанная техническая книга. - person Robben_Ford_Fan_boy; 13.05.2010
comment
Спасибо, Ричард, сейчас я читаю старую книгу «Начало программирования ATL COM» Граймса, Стоктона, Рейли и Темплмана. Я прочитаю Дона Бокса. - person smwikipedia; 13.05.2010
comment
кстати, вы можете посмотреть онлайн-книгу Дона Бокса (первая глава) books.google.co.uk/ - person Oleg; 14.05.2010
comment
Кажется, у «Начало программирования на ATL COM» много ужасных комментариев на Amazon.com. - person smwikipedia; 14.05.2010

вы можете найти много интересной информации о COM на сайте www.codeproject.com (см. http://www.codeproject.com/KB/COM/index.aspx?#COM/DCOM/COM+%20-%20Beginners, например)

person Oleg    schedule 13.05.2010