关于ATL、ActiveX和COM之间的关系??

hzy694358 2010-04-11 12:59:27
他们之间到底是什么关系,怎么感觉书上好像说的都是同一件事
...全文
327 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
峻峰_Lee 2010-04-20
  • 打赏
  • 举报
回复
VC中好像默认用MFC制造Activex组件,就是Activex向导。
而在那里也有ATL制造Activex组件的向导

其实我觉得应该分清楚,要不然容易误导。
在VS上面就分得比较清楚。

个人理解而已。
tj_swjtu 2010-04-16
  • 打赏
  • 举报
回复
顶.......
zhaohongbo83 2010-04-13
  • 打赏
  • 举报
回复
COM 是一个基础技术!
jameshooo 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hzy694358 的回复:]

引用 9 楼 jameshooo 的回复:
两套开发框架实现ACTIVEX的方式不一样,任何一种都可以,按需选择吧

那两种有什么区别吗,或者他们各用在什么地方,
有什么优劣
[/Quote]

没有什么区别,喜欢MFC的人就用MFC向导,喜欢ATL的人就用ATL向导,我都不喜欢(ATL好点),手工写。

好像区别还是有的,如果没记错的话,MFC创建的控件都是有窗口的,ATL创建的控件可选择是否有窗口。
hzy694358 2010-04-12
  • 打赏
  • 举报
回复
恩,稍微明白了点了,
可是VC为什么提供ATL COM wizard又提供一个MFC ActiveX ControlWizard呢,
不能将两个结合?
SullenSun 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hzy694358 的回复:]

引用 7 楼 longlongagoimboy 的回复:
目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在用于开发ActiveX控件的道路上走到了一起。

还是没有明白为什么会有两个向导,
ActiveX 向导建……
[/Quote]
ActiveX与atl没有直接关系。atl是产生com代码框架,activex是实现了一组特殊接口的com组件。
visualassist4680 2010-04-12
  • 打赏
  • 举报
回复
com 是规范,是一种标准,相当于法规一样,对于程序只有遵守了com规范才能称为com组件

activex 是遵守com规范的一种程序,是com规范的的具体实现

atl 是一套特定的库,首先是一套库,类似 c/c++ 的运行时库,mfc,是完成特定功能的代码组合;而特别之处就是,atl 是按照com规范实现的一套库,可以用于开发 activex
hzy694358 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jameshooo 的回复:]
两套开发框架实现ACTIVEX的方式不一样,任何一种都可以,按需选择吧
[/Quote]
那两种有什么区别吗,或者他们各用在什么地方,
有什么优劣
jameshooo 2010-04-12
  • 打赏
  • 举报
回复
两套开发框架实现ACTIVEX的方式不一样,任何一种都可以,按需选择吧
hzy694358 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 longlongagoimboy 的回复:]
目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在用于开发ActiveX控件的道路上走到了一起。
[/Quote]
还是没有明白为什么会有两个向导,
ActiveX 向导建的com组件没有用到atl的吗
还有什么时候用atl com向导
什么时候用ActiveX 向导来创建com组件呢?
Jimmy_Xia 2010-04-12
  • 打赏
  • 举报
回复
目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在用于开发ActiveX控件的道路上走到了一起。
arong1234 2010-04-11
  • 打赏
  • 举报
回复
ActiveX可以用ATL,也可以用其他写,ATL只是写这种东西的一种方法而已。
既然ActiveX是COM的一种特例,那么ActiveX当然要比COM自己向导增加一些它特有的东西
[Quote=引用 2 楼 hzy694358 的回复:]
atl是一个类库,可以使用它进行com开发.
activex是com的一种实现方式.
_______________________________________

那activex中有用到atl吗?
还有vc中貌似有提供ActiveX向导和ATL向导,
这两个向导开发的com组件由什么不同吗
[/Quote]
sgzwiz 2010-04-11
  • 打赏
  • 举报
回复
activex就是实现了IOleObject、IDataObject、IOleInPlaceObject等某些特定接口的东东

而什么叫接口?就是符合COM规定的就叫接口。

ATL就是一种类库,是采用模板架构的,专门用于接口编程,大大节约编写代码的时间,用来编写activex当然是功能之一。ATL不仅仅可以用来写ActiveX,还可以用来写其他任何需要用到接口编程的东东。

当然你也可以MFC、VB或者C#等来编写Activex。
macklau 2010-04-11
  • 打赏
  • 举报
回复
精彩,学习了
hzy694358 2010-04-11
  • 打赏
  • 举报
回复
atl是一个类库,可以使用它进行com开发.
activex是com的一种实现方式.
_______________________________________

那activex中有用到atl吗?
还有vc中貌似有提供ActiveX向导和ATL向导,
这两个向导开发的com组件由什么不同吗
sjdev 2010-04-11
  • 打赏
  • 举报
回复
atl是一个类库,可以使用它进行com开发.
activex是com的一种实现方式.
com是一种规范.

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧