ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序。 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库的缺点是,作为模板库,在出现错误的时候会比较麻烦

转载于:https://www.cnblogs.com/visionfeng/p/5611592.html

ATL CLR MFC Win32 常规 的区别相关推荐

  1. VC学习笔记---ATL MFC CLR三个库的区别

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

  2. Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系

    Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系 Win32控制台程序 初始化代码模板以Main为程序入口,默认情况下,只链接C++运行时库和一些核心的Win32库,链接器subs ...

  3. MFC和GTK的区别

    关键技术 http://blog.csdn.net/master_max/article/details/1540204 MFC和GTK的区别?? 1. 两者都是基于面向对象设计的.尽管MFC是用C+ ...

  4. ATL与MFC消息分发机制的对比---由金山开源代码引出的思考(一)

    博客已迁移至:http://kulv.sinaapp.com/,这里不再使用 ATL与MFC消息分发机制的对比---由金山开源代码引出的思考 (一) 前几天刚看金山开源代码时写了一篇博客分析了一下其消 ...

  5. ATL 和 MFC 字符转换宏

    ATL 和 MFC 字符转换宏  ATL3.0 Ø     ATL3.0中的W2T ,T2W等一系列宏很方便,但一定要小心,它们从栈上分配内存,直到调用它的函数返回前,该内存不会被释放,如果在一个循环 ...

  6. MFC win32 API串口异步模式代码示范 vs2015

    MFC win32 API串口异步模式代码示范   vs2015 本程序为单步接收,即点击接收按钮,才能收到消息. 实时循环接收需要添加线程 参考实例: https://blog.csdn.net/t ...

  7. 【转】MFC与.NET的区别

    1.     MFC是在API的基础上封装出来的一个类库,给C++程序员在Windows上快速开发用的. .Net类库是在Windows非托管API的基础上封装出来的一个托管类库,给程序员在各种Win ...

  8. ATL编程 MFC应用

    一.生成动态库 1.用ATL创建动态库 打开VS2010->文件->新建->项目->Visual C++,ATL,ATL项目,名称:AtlDll->确定->下一步- ...

  9. CRT、ATL、MFC 三者介绍和关系

    CRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行.后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发 ...

最新文章

  1. linux 编程之库的使用(学习笔记)
  2. Android RecyclerView 间距全适配
  3. 保护SQL Server数据库的十大绝招
  4. oracle 出参类型定义,Oracle plsql出参clob类型的操作
  5. CoderForces999D-Equalize the Remainders
  6. php intval0.57100,应用NuSoap构建新型的基于PHP的Web服务
  7. Tinymce4 中Ajax多次加载时,会出现菜单在第二次进入时,显示的下拉菜单在左上角...
  8. 令牌环(Token Ring)
  9. html固定表头怎么设置,css如何固定表头
  10. unity for 易接IOSsdk
  11. 简体中文与繁体中文的互相转换
  12. URL.createObjectURL()
  13. [系统安全] 逆向工程进阶篇之对抗逆向分析
  14. bp神经网络python源代码_python构建bp神经网络_曲线拟合(一个隐藏层)__2.代码实现...
  15. Docute 创建文档网站(docute v3)
  16. 2022长三角产业区块链生态图谱 附下载
  17. java狐妖外传,月华凌乱——狐不归外传
  18. XMPPFrameWork IOS 开发(一)xmpp简介
  19. 商旅问题TSP——动态规划(c++ 动态规划)
  20. 计算机教育专业是工程类,计算机类专业如何应对工程教育专业认证所带来的机遇与挑战?...

热门文章

  1. zillow房价预测
  2. 如何免费使用数据挖掘软件RapidMiner - 申请学生许可证
  3. vb 搜索指定目录下的指定类型文件
  4. Linux文件查找find和locate
  5. django之全文检索
  6. React Native知识
  7. AFNetworking 取消请求
  8. jQuery 设置select默认选中问题
  9. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序
  10. html之marquee详解[转]