Приветсвую всех. Возможно, что тема топика кого-то рассмешит, но все же Большую часть времени я занимаюсь сугобо системным и сетевым програмиированием, а сейчас просто хочу прояснить себе некоторые моменты (знаю, что гугл и msdn рулят, но объем информации очень большой, а мне требуется понять только концепиции). Вопрос: что технически из себя представляет сабж? Насколько я понимаю, СOM(OLE) объект - это именованный кусок кода,состоящий из именованных же функций (методов) и экспортируемых переменных (полей). В каком-то месте (полагаю, что в реестре) хранится некий список из идентификаторов (длинные hex-значения в фигурных скобках вроде - {995c996e-d918-4a8c-a302-45719aa6f4ea7} это они?), названия объекта и размещения собственно объектного файла. Но что представляют из себя эти файлы? Это просто DLL с экспортируемыми символами (функции и переменные)? Или эти объекты хранятся в каком-то особом формате? Очень удобно все выглядит в объектных языках: в WScript присвоили obj = CreateObject("имя") и дальше как с обычным объектом работаем. Мне же интересно что за кулисами происходит, как если бы я писал на Си или ассемблере. И как относятся между собой COM,DCOM и OLE? Кто на чем основан, иерархия интересна, что лежит в основе чего. Исправьте меня, если где насочинял и по возможности дополните И если можно дайте ссылку на мат. часть) Заранее спасибо всем
Ну судя по тому количеству "факов", которые пишут в сорцах программеры WDM дров, COM - есть великое зло, и индуское проклятье от майкрософт, всем белым кодерам-системщикам. Умом там сложно чего понять, пожалуй куда проще нарисовать обходные пути.
Очень рекомендую почитать книгу "Дейл Роджерсон: Основы COM" http://proklondike.com/contentview.php?content=263 Если вкратце то COM обьект наиболее приближен по виду к классу из С++. Но есть свои нюансы, которые связаны с тем, что программа должна выяснить, есть ли в системе нужный ей COM-обьект. COM- обьекты могут хранится не только внутри DLL, но и внутри exe-файла, или вообще на другом компьютере (Distributed COM, DCOM). OLE - это технология вообще более обширная и включает в себя COM и много других вещей.
Спасибо большое всем за помощь! ntcdm, очень признателен Вам за ссылку, бегло просмотрел содержание - как раз то, что мне сейчас нужно, обязательно прочту