COM、MFC、ATL和CLR

CLR是一种给各种语言提供运行时,类似于jvm,给.net 平台内的提供运行基础.去理解一下其中一个重要的概念叫IL(中间语言), 你就大概明白runtime是做什么的了。.net framework 是个框架内使用clr来提供运行时

visual studio 是IDE。从名字上来理解,集成开发工具,就是继承了编辑器,编译器,运行部署,容器等一系列的工具。开发时来用的。

至于MFC 和 ATL 比较类似,可以理解为为软开发的类库,c/c++中可以调用他,而他门又不仅现如此,还提供了开发框架等等。

com是一种思想或者标准,使用MFC 和ATL都可以实现这种思想或者标准。

 

《COM应用程序框架》

                                                   

                                                                                                             使用MFC+ATL组合图: 

                                                 

                                                                                                       使用WTL+ATL组合图

从上面两附图中很容易看出,使用MFC+ATL组合开发COM应用程序框架,MFC存在一层函数调用,代码执行速度会慢一些。小程序可能看不出来,大程序也就明显了。   如果使用WTL+ATL组合开发COM应用程序框架,就不会多一层调用,代码执行速度非常快,就像是用Win32 SDK编写代码一样没有什么区别,因为WTL是模板代码,在编译后不会存在一层函数调用。所以《COM应用程序框架》将采用WTL+ATL组合进行设计,这可能是最佳方案。

 

PS: 下面部分引用自百度百科:

Object Linking and Embedding,对象连接与嵌入,简称OLE技术。OLE 不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(COM)。

OLE 是在客户应用程序间传输和共享信息的一组综合标准。允许创建带有指向应用程序的链接的混合文档以使用户修改时不必在应用程序间切换的协议。OLE基于组件对象模型(COM) 并允许开发可在多个应用程序间互操作的可重用即插即用对象。该协议已广泛用于商业上,在商业中电子表格、字处理程序、财务软件包和其他应用程序可以通过客户/服务器体系共享和链接单独的信息。
  OLE 是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM)。
  关于 OLE ,业界早就在抱怨它的缓慢和庞大,对市场敏感的 Microsoft 需要对那些 API 函数提出一种新的术语以适应未来的操作系统和 Internet 技术。有趣的是 Microsoft 已经宣布 OLE 不再代表对象链接与嵌入,而只是一个过去的名词而已。

 

ATL

其设计旨在让人们用C++方便灵活地开发COM对象。ATL本身相当小巧灵活,这是它最大的优点。用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时DLLs支持.

 

STL(标准模板库)

从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。

 

 

MFC六大关键技术:

1.MFC程序的初始化部分;

   MFC有固定的类结构,根据C++的继承、多态特性把Win32对应的各部分放入MFC的封装模块中;

2.RTTI(Runtime Type Information)运行时类型识别;

   通过链表实现,每个类型都保存在一个结构中[对性名称,基类、派生类],通过这些信息,保证了RTTI的实现;

3.Dynamic Creation动态创建;

4.Persistence永久保存;

5.Message Mapping消息映射;

6.Message Routing消息传递;

posted on 2014-03-24 13:17  言止予思  阅读(979)  评论(0)    收藏  举报