Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > В чем разница между DLL и ActiveX


Автор: voov 6.6.2008, 15:38
Объясните в чем разница между DLL и ActiveX. Но только не то, что касается области применения и способа подключения. То, что ActiveX можно использовать независимо от среды разработки и его места нахождения, понятно. Но если опустить это. Скажем, единая среда разработки и машина без локальной/глобальной сети. Меня интересует разница в реализации, поведении и общении с основым приложением того и другого. Поясню:

DLL это набор классов и/или функций, которые можно вызывать из основного приложения и которые по вызову выполняют какието действия. Сюда можно засунуть и диалоги, но своего окна (т.е. контрола в окне основного приложения) DLL не имеет.

Ситуация с ActiveX для меня менее понятна. Свой контрол у него вроде есть, но как происходит его отрисовка? Т.е. понятно, что где-то внутри ActiveX есть метод его рисования, но как, кем и когда вызывается этот метод?(1)
Также меня интересует как обстоит дело с функциональностью ActiveX. Чтобы элемент ActiveX выполнил какоето действие, нужно дергать его из основного приложения или он сам по таймауту или какомуто событию может выполнить действие? Иными словами ActiveX это тоже набор классов и/или функций или поток в основном процессе, который может посылать/принимать сообщения?(2)

Если мои рассуждения гдето неверны, то скажите где и почему.

Автор: The_Thing 30.10.2008, 02:28
ActiveX - наследуется от COM. В общем не кооректно задавать вопрос "Объясните в чем разница между DLL и ActiveX", COM - это технология проектирования, а DLL - это просто динамически подключаемый код (может не совсем корректно, извиняюсь).

Автор: xvr 30.10.2008, 12:20
Цитата(voov @ 6.6.2008,  15:38)
Объясните в чем разница между DLL и ActiveX. 

DLL может быть ActiveX а может и не быть. А ActiveX может быть DLL а может и не быть  smile 
Цитата

Но только не то, что касается области применения и способа подключения. То, что ActiveX можно использовать независимо от среды разработки и его места нахождения, понятно. Но если опустить это. 
А если еще опустить все, чем они отличаются, то они ничем отличаться и не будут   smile  

Цитата

Ситуация с ActiveX для меня менее понятна. Свой контрол у него вроде есть, но как происходит его отрисовка? Т.е. понятно, что где-то внутри ActiveX есть метод его рисования, но как, кем и когда вызывается этот метод?(1)
О! ActiveX control можно вставить только в ActiveX контейнер, отрисовка будет только в этой связке. Собственно контейнер гораздо сложнее, чем контрол.

Цитата

Также меня интересует как обстоит дело с функциональностью ActiveX. Чтобы элемент ActiveX выполнил какоето действие, нужно дергать его из основного приложения или он сам по таймауту или какомуто событию может выполнить действие? 
Это уж как вы его сделаете внутри.

Цитата

Иными словами ActiveX это тоже набор классов и/или функций или поток в основном процессе, который может посылать/принимать сообщения?(2)
Да

Цитата

Если мои рассуждения гдето неверны, то скажите где и почему.
Смотри http://msdn.microsoft.com/en-us/library/ms221375.aspx и http://msdn.microsoft.com/en-us/library/ms695296(VS.85).aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)