Visual Studio中 ATL CLR MFC Win32 区别

转载 2015年11月18日 19:26:52

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库的缺点是,作为模板库,在出现错误的时候会比较麻烦,出错提示会牛头不对马嘴. 

Visual Studio 9.0(2008) Mini版的整理。 (支持WTL/ATL/MFC/Win32)

软件名称:Visual Studio 9.0(2008) Mini版 功能:可以脱离 VS2008来编译 WTL/ATL/MFC/Win32 工程 PS:不支持 C#、VB以及其它语言的编译。 ...

ATL CLR MFC Win32的区别

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

C++中DLL种类:WIN32、MFC、ATL及CLR

从编程所处层次而言,WIN32为最底层,其次是MFC.然后是ATL,最后是CLR. 1.        WIN32常规就是不用MFC,使用API函数编的程序;可调用Win32 WinAPI;...

ATL/CLR/MFC/Win32

ATL/CLR/MFC/Win32   MFC、ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用。当然关于C++开发的库不止这3个,不过这3个是微软推荐。从编...

vs2005里的C++ 项目有clr程序、win32控制台程序、MFC程序,它们的区别

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

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

问题: 原配的Visual Studio 2005专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: 解决:...

两种方法在Visual Studio Win32控制平台程序中使用超过4G的内存

两种方法在Visual Studio Win32控制平台程序中使用超过4G的内存(以Visual Sutdio 2013为例) 如果你的程序运行中由于申请大空间而抛出了bad alloc异常,那这篇...

visual studio2013 项目属性--配置管理器 win32 和 x64的切换需要注意的地方

配置管理器  有两种: win32   X64 两种配置时候需要注意的: 1、系统环境变量 path 中  opencv的路径 检查是否需要更改顺序,  因为opencv在path中 之前...

WIN32---窗口程序(Visual Studio 2013)

// winresy.cpp : 定义应用程序的入口点。 // #include "stdafx.h" #include "winresy.h" #define MAX_LOADSTRING 1...

VS2015--win32工程配置的一些想法之在 Visual Studio 2015 中进行调试的同时分析性能

出处: https://msdn.microsoft.com/zh-cn/magazine/dn973013(en-us).aspx许多开发商花了绝大多数时间获取应用程序才能正常发挥作用。更少的时间...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Visual Studio中 ATL CLR MFC Win32 区别
举报原因:
原因补充:

(最多只允许输入30个字)