COM против XPCOM разница между этими двумя
Я знал, что здесь есть ссылка, которая немного обсуждала разницу между COM и XPCOM.
Что такое XPCOM? XPCOM против COM?
Тем не менее, я хочу знать эту тему более подробно. Например, для подсчета ссылок и определения типа COM наследуется от IUnknown, XPCOM наследуется от nsISupport. В чем разница между IUnkown и nsISupoort, кроме именования?
Кроме того, поддерживают ли эти два разных компонента различное управление потоками или управление памятью? Темы как это действительно интересуют меня.
Пожалуйста, ответьте на этот пост, если вы знаете. Спасибо
1 ответ
В чем разница между IUnkown и nsISupoort, кроме именования?
Нет, правда. nsISupoort
был специально разработан для двоичной совместимости с IUnknown
, чтобы облегчить FireFox размещение элементов управления ActiveX и быть представленным как элемент управления ActiveX.
Поддерживают ли эти два разных компонента различное управление потоками или памятью?
Да. XPCOM использует свой собственный распределитель памяти (nsMemory::Alloc
и др.), полностью независимый от COM-распределителя (CoTaskMemAlloc
и другие). COM предоставляет широкий набор моделей потоков, а также поддержку маршалинга. XPCOM практически не работает с потоками (см. nsIProxyObjectManager
) и не имеет понятия о маршалинге.
Предупреждение: эта информация вполне может быть устаревшей. Мое знакомство с состоянием разработки Mozilla актуально на 2010 год или около того.