`
wenzongliang
  • 浏览: 461532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

关于Visual C++ 的CLR、ATL、MFC对比

 
阅读更多

MFC、ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用。当然关于C++开发的库不止这3个,不过这3个是微软推荐。从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR. WIN32 winAPI MFC MFC类库 CLR .net库

  1. WIN32常规就是不用MFC,使用API函数编的程序。

  2. MFC库有很多年的历史了,MFC是基于Windows API 的简单封装。其核心架构基于"Document/View"架构(20年前被认为很潮流的一种概念)和消息流动机制。这个库自从VC6开始到现在都没有多大改动。MFC封装的范围包括GUI,IO,数据库,网络编程等等方面。但是很多系统开发必须的api都没有封装,这样开发者一般都在MFC的基础上自己处理与业务相关的任务。事实上很多人用MFC只是利用其GUI部分的封装。这个库GUI处理的效率也并不是很高,有时候与UI处理相关的代码会占到整个项目的一半甚至更多。总的来说,这是一个垂老的库,微软在10年以来,除了对MFC进行修修补补以外,没有进行大的改进或者更新。如果你问MFC还会活多久?恩,这是个问题。如果有一天MFC不在了,微软在这个级别上并没有其他产品能够代替它。

  3. CLR库是随着.Net Framework 2 和VS2005一起发布的库,其核心的实现和C#,VB.net 一样。都是基于公共语言运行库。.Net Framework封装了大量系统的api,以类库的形式提供给开发者。C++中的CLR库可以使用其中和本机代码有关的部分,目前C++还不能涉及到asp.net部分。CLR库中的C++颠覆了很多标准C++的传统,甚至可以说,这里的C++不是C++,只是披着C++的皮干其他的事。这里的C++更像是C#或者类似的语言。所以这里不叫C++,而叫做C++/CLI,值得一提的是,有关C++/CLI的部分目前还没有被标准C++接受,最近微软有关C++/CLI标准化的提案被C++标准化委员会拒绝了。所以C++/CLI目前还是微软的一家之言。

  4. ATL用于编写COM程序。ATL库貌似也年纪很大了,至少在我接触到VC的时候就有它的存在了。这个库可以追溯到COM组件,因为ATL的目的就是帮助开发者更好的与COM交互。到底什么时候有COM这个东西的?我也不知道,我只知道COM是有16位版本的,在Windows升级到32位的时候COM也随着升级到了32位。COM就像一些封装好的类对象一样,通过封装系统的api,提供一些标准的方法来给你使用。所以系统中有什么组件,就可以在ATL中用什么方法。所以ATL不止可以写ActiveX,也可以有window,也可以有其它。有时候有些微软发布的功能是只以COM组件的形式发布的,例如MSXML,这时候MFC就不适合,是要ATL来处理的。但是ATL在处理UI这方面并不是很强,所以微软工程师有一个开源的UI 框架,叫做WTL,专门用来处理UI的。ATL库的缺点是,作为模板库,在出现错误的时候会比较麻烦,出错提示会牛头不对马嘴。

加入流量联盟,提升流量

我的话费充值店-各种面额

电信100元仅售98.60 
联通100仅售99.00
移动100仅售99.30

分享到:
评论

相关推荐

    Visual C++开发技术大全

    - **丰富的库支持**:Visual C++ 包含了大量的库文件,如MFC、ATL等,极大地简化了Windows 应用程序的开发过程。 3. **应用领域**: - **桌面应用程序开发**:Visual C++ 被广泛用于Windows 桌面应用程序的开发,...

    Microsoft Visual C++ 14.0 安装包

    5. **CLR(Common Language Runtime)支持**:对于托管代码的开发,Visual C++支持.NET框架,允许C++程序员使用.NET功能。 6. **调试器和支持工具**:包括用于调试、性能分析、内存检查等的工具,帮助开发者优化和...

    Visual C++技术内幕光盘资料

    1. 示例代码:展示了如何使用MFC、ATL或其他Visual C++特性来解决问题或实现特定功能。 2. 模板项目:可以作为新项目的起点,比如简单的Win32应用程序、DLL项目或是使用DirectX的图形项目。 3. 工具和实用程序:可能...

    Visual_C++权威剖析光盘

    5. **CLR(Common Language Runtime)与.NET Framework**:虽然主要面向C++,Visual C++也支持.NET框架,可以编写托管代码,利用CLR执行。C++/CLI是C++的一个扩展,允许开发者混合编写原生C++和托管代码,无缝对接...

    Visual C++ 2010 Express 中文版

    5. **CLR(Common Language Runtime)支持**:Visual C++ 2010 Express支持.NET框架,允许C++程序员编写托管代码,与.NET平台无缝集成。 6. **调试工具**:IDE内置了强大的调试器,支持断点、单步执行、变量查看、...

    Visual C++程序模块集合

    5. **CLR(Common Language Runtime)支持**:通过.NET Framework,Visual C++支持托管代码,允许开发C++/CLI项目,这使得C++可以与.NET生态系统中的其他语言(如C#、VB.NET)无缝交互。 6. **IntelliSense**:...

    Microsoft Visual C++运行库参考手册

    5. **CLR(Common Language Runtime)与.NET Framework**:虽然主要与Visual Studio中的.NET语言(如C#、VB.NET)相关,但Visual C++也可以通过Managed C++或C++/CLI来利用CLR,实现跨语言的互操作性。 6. **动态...

    Visual C++.NET(2008)典型案例[郑阿奇][电子教材].rar

    《Visual C++.NET(2008)典型案例[郑阿奇][电子教材].rar》是一部专为想要深入理解和掌握Visual C++.NET 2008编程技术的读者准备的电子教材。作者郑阿奇,以其丰富的教学经验和实践积累,为我们揭示了C++在.NET平台...

    Visual C++ .NET编程实例pdf

    5. **MFC和ATL**: 虽然.NET框架提供了新的开发方式,但Visual C++仍然支持传统的Microsoft Foundation Class (MFC)库和Active Template Library (ATL)。这些库适用于开发Win32 API级别的应用程序,对于需要高效和...

    visual c++程序设计:基础与实例分析

    3. **CLR(Common Language Runtime)支持**:Visual C++支持.NET Framework,允许开发托管代码,这使得C++程序员可以利用.NET的特性,如自动垃圾回收和类型安全。 4. **C++/CLI**:这是一种扩展的C++语法,用于...

    Visual C++ 技术内幕,英文PDF版

    这本书是关于使用 Microsoft Visual C++.NET 进行编程的核心参考资料。它包含了第六版的全部内容,为读者提供了深入理解 Visual C++.NET 的各个方面所需的知识和技术。本书不仅适合初学者作为入门指南,也适合经验...

    Visual C++技术内幕第5版.rar

    这本书详细阐述了Visual C++的各种特性,包括MFC(Microsoft Foundation Classes)框架、ATL(Active Template Library)、C++标准库在Visual C++中的实现以及.NET Framework的整合。 1. MFC框架:MFC是Microsoft为...

    Visual C++开发实例大全(提高卷)源代码实例286

    3. **CLR(Common Language Runtime)与.NET Framework**:虽然Visual C++支持传统的C++编程,但它也集成了.NET Framework,允许开发者使用C++/CLI来编写.NET应用程序,享受跨语言的互操作性。 4. **IDE...

    visual c++安装.7z

    5. **CLR(Common Language Runtime)**:虽然不是专门针对C++,但Visual C++也可以与.NET Framework集成,利用CLR运行时环境来编写托管代码,即C++/CLI。 6. **IntelliSense**:Visual C++的智能感知功能,能自动...

    Visual C++程序模块集锦

    1. **MFC(Microsoft Foundation Classes)框架**:MFC是Visual C++中的核心部分,提供了一套面向对象的类库,基于C++实现了Windows API,简化了Windows应用程序的开发。通过MFC,开发者可以快速构建用户界面,处理...

    Visual.C++.2010开发权威指南].尹成.扫描版.zip

    4. **CLR(Common Language Runtime)与C++/CLI**:Visual C++ 2010支持.NET框架,通过C++/CLI(Managed Extensions for C++)可以编写托管代码。这部分内容会涵盖如何在C++中利用.NET功能,如泛型、垃圾回收、类型...

    Collect(Visual C++)

    Visual C++是Microsoft Visual Studio家族的一员,它包括了C++编译器、集成开发环境(IDE)、MFC(Microsoft Foundation Classes)库、ATL(Active Template Library)以及CLR(Common Language Runtime)等组件。...

    Visual C++.net开发手册

    在《Visual C++.NET开发手册》中,读者可以学习到如何使用MFC(Microsoft Foundation Classes)库来创建Windows应用程序。MFC是微软提供的一套C++类库,封装了Windows API,简化了窗口、对话框、控件等的创建。此外...

    Visual C++程序开发范例宝典光盘使用说明

    4. **CLR(Common Language Runtime)**:是.NET框架的一部分,支持跨语言的运行时环境,使得Visual C++可以创建托管代码。 二、项目和解决方案管理 在Visual C++中,项目是代码的容器,解决方案则可以包含多个...

Global site tag (gtag.js) - Google Analytics