ATL VS MFC

 

ATL vs. MFC

In a way, ATL is to COM what MFC is to the Windows API. The goal of ATL is to provide a thin but effective wrapper around the most common COM interfaces without sacrificing component performance. Despite this similarity, however, the designs of MFC and ATL differ in several key ways:

MFC contains an interconnected hierarchy of classes, whereas ATL is a set of disjoint templates. This difference means that with ATL you don't pay the size/speed penalty for a given feature unless your component actually uses it.

MFC is linked to a project as a static library or a DLL, but ATL is compiled as source code. Because there are no OBJ files to link to, ATL requires no run-time DLL redistribution.1

MFC supports a single-inheritance model, whereas the functionality of an ATL component depends entirely on the use of multiple inheritance. Specifically, a component that supports several different COM interfaces will inherit from several different associated ATL templates.

Over time, MFC has grown considerably. As the expectations placed on Windows applications have increased, so have the size and feature set of MFC. Although a similar progression is likely as the use of ATL becomes more prevalent, ATL's use of templates rather than regular inheritance will almost assuredly prevent class proliferation.

时间: 2024-07-31 06:05:36

ATL VS MFC的相关文章

用ATL和MFC来创建ActiveX控件

摘要目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发.MFC代表了创建独立的Windows应用的一种简单.一致的方法:ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码.这两种框架在它们对于开发ActiveX的用途上会合了.我们将看看这两种框架是如何适用于创建ActiveX控件的--突出其优缺点,亲自经历创建一个控件的过程--以便你能够决定何时使用一种框架,何时使用另一种. 如果你希望用C++来写ActiveX控件,有两个流行的框架,一个是Micr

VC MFC专题

MFC程序如何实现给对话框添加背景图片 MFC游戏开发笔记十 游戏中的碰撞检测进阶:地图类型&障碍物 MFC游戏开发笔记九 游戏中的碰撞判定初步&怪物运动简单AI MFC游戏开发笔记八 游戏特效的实现(二):粒子系统 MFC游戏开发笔记七 游戏特效的实现(一):背景滚动 MFC游戏开发笔记六 图像双缓冲技术:实现一个流畅的动画 MFC游戏开发笔记五 定时器和简单动画 MFC游戏开发笔记四 键盘响应和鼠标响应:让人物动起来 MFC游戏开发笔记三 游戏贴图与透明特效的实现 MFC游戏开发笔记二

VC ATL专题

ATL的GUI程序设计(前言) ATL的GUI程序设计(2) ATL的GUI程序设计(1) ATL/COM简单工程 ATL COM和ADO VC++与MATLAB混合编程及其应用 MATLAB与VC++混合编程实现一维小波多尺度分解. 基于VC++中ATL创建ActiveX控件的探讨 精通VC与MATLAB联合编程<十>--综合举例二 精通VC与MATLAB联合编程<九>--综合举例一 精通VC与MATLAB联合编程(八) 精通VC与MATLAB联合编程(七) 精通VC与Matla

STL,ATL,WTL之间的联系和区别

STL即 Standard Template Library (标准模板库)         STL是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来的.现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间.        STL的代码从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),几乎所有的代码都采用了模板

【转】Windows Shell扩展编程傻瓜手册大全:上下文菜单扩展

引用自:http://blog.163.com/yesaidu@126/blog/static/51819307200861853827582/ Part I: A step-by-step tutorial on writing shell extensions 第一节:Windows shell扩展初步:上下文菜单扩展   作者:Michael Dunn 译者:yesaidu   源代码下载:1       2   目录 ● README ● 系列绪言 ● 第一部分绪言 ● 从AppWiza

VC++库

c++     大量的程序员都尽可能多地利用现有的代码.程序员经常购买那些包装成库的代码,而且许多成功的公司正是靠生产真正优秀的代码库而发展起来的,例如Rogue WaveSoftware (www.roguewave.com).    当C语言流行时,代码库就是函数库.例如,可以购买一个数学库,该库含有完成微积分和代数运算的函数.通常,可以在程序代码中使用一个包含文件来指定一个函数库,可以静态或动态地链接这个函数库.    静态链接意味者库代码直接集成到程序中.在这种情况下,程序不依赖于其他文

.NET目标(一)

此外,.NET大量地运用了XML技术,并赋予SOAP协议极其重要的地位.借助于SOAP,Microsoft希望将软件开发带入一个新的时代,即不再依赖于装配组件和对象,而是以重用服务作为软件开发的基础.SOAP和Web服务共同构成了.NET平台的基础. 然而,为当前正在开发的DNA应用的未来而担心仍旧是没有必要的.Microsoft已经承认,发布.NET最终版本的时间不会早于2002年,而且.NET能够直接在裸机上运行现有的应用,但这些应用将无法利用任何.NET的优势. 和Microsoft让我们

為 Microsoft Visual Studio .NET 設計工具建立可設計式元件(转贴)上

visual 為 Microsoft Visual Studio .NET 設計工具建立可設計式元件 Shawn BurkeMicrosoft Corporation 2000 年 7 月 摘要:Microsoft .NET 元件於通用語言執行階段,以管理程式碼撰寫建立而成.本文中討論 Microsoft .NET 元件如何提供開發人員一套全新的絕佳混合開發工具,不但類似於 Microsoft Visual Basic,同時提供與 ATL 或 MFC 更具關聯性的低階程式設計能力 (列印頁數共

C#组件开发 Zt

组件开发 简介 微软即将发布的 Visual Studio .NET 将使程序开发人员获得一个集 成开发环境,它不但为开发传统的 C/C++ 应用程序,而且也为令人振奋 的 Microsoft .NET 组件提供了丰富的工具.这些以管理代码编写.在通 用语言运行时构建的组件向开发人员提供了一个全新的混合开发环境,即 象 Microsoft Visual Basic 一样容易,而同时又提供了强大的低级编程 能力,与 ATL 或 MFC 更加相关.随着以生产效率为中心的管理环境的到 来,它可与传统