ATL CLR MFC Win32 常规 的区别

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库的缺点是,作为模板库,在出现错误的时候会比较麻烦

时间: 2024-10-14 05:03:23

ATL CLR MFC Win32 常规 的区别的相关文章

VS2008中 ATL CLR MFC Win32 区别

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,使用AP

Visual Studio中 ATL CLR MFC Win32 区别

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

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

MFC.ATL和CLR是VC2005内置的三大库,涵盖了Windows的各种开发方法和开发应用.当然关于C++开发的库不止这三个,不过这三个是微软推荐. 从编程所处层次而言,WIN32为最底层,其次是MFC,然后是CLR.WIN32 winAPI MFC MFC类库 CLR .net库 WIN32常规就是不用MFC,使用API函数编的程序. MFC库有很多年的历史了,MFC是基于Windows API 的简单封装.其核心架构基于"Document/View"架构(20年前被认为很潮流的

在VS中使用MFC和ATL与使用WIN32有什么联系或区别?

有时候遇到一些初学者问我这个问题:在VS中使用MFC和ATL与使用WIN32有什么联系或区别?通俗来说,win32是通过调用windows api去实现需要的功能.而MFC和ATL则是封装好的类库,包含windows API和一些算法,提供给用户去使用.每一种类库代表了一种编程思想.打个很简单的例子,如果你喜欢自己维修东西,可以自己去商店掏锤子.螺丝刀.电工刀.钳子等等,也可以去买一个博世工具箱,里边各种工具一应俱全.自己淘货相当于使用win32调用windows api.买的工具箱相当于封装好

【C/C++】STL,ATL,WTL之间的联系和区别

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

[转]用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口

原文链接: 1.用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口 2.Windows MFC 两个OpenGL窗口显示与线程RC问题 原文地址:https://www.cnblogs.com/rainbow70626/p/8973440.html

MFC和QT的区别

MFC(微软基础类库)是专门为windows设计的一个用于开发图形用户界面的类库.MFC或多或少使用了面向对象的方法包装了Win32的API,正因如此,这些API有时是C++,有时是C,甚至是C和C++的混合体. Qt这个C++的图形库由Trolltech在1994年左右开发.它可以运行在Windows,Mac OS X, Unix,还有像Sharp Zaurus这类嵌入式系统中.Qt是完全面向对象的. Document/View model: MFC编程需要使用Document/View模式以

ATL and MFC String Conversion Macros

ATL 7.0介绍了一些新的转换类和宏,为现有的宏提供了重要的改进.新的字符串转换类和名称宏的形式是:C 源类型 2[C] 目标类型[EX]其中:•源类型和目标类型描述如下表.• [C]是目标类型必须是只读的.•[EX]是缓冲器的初始大小必须被指定为一个模板参数. 源类型/目标类型  描述 A  ANSI字符串 W  Unicode字符串 T  通用字符串(如果定义了_UNICODE)则等同于W,否则等同于A OLE  OLE字符串(等同于W) 例如,从一个Unicode字符串转换为普通字符串不

Win64与Win32的本质区别(4)

前面的驱动编程相关内容都是在32位环境下进行的,驱动程序与应用程序不同,32位的驱动只能运行在32位系统中,64位驱动只能在64位系统中运行,在WIN32环境下,我们可以各种Hook挂钩各种系统函数, 而恶意程序也可以通过加载驱动进行内核层面的破坏(Rootkit),大家都可以乱搞,把好端端的Windows系统搞得乱七八糟,严重影响了系统安全性与可靠性. 为了确保系统的安全性与稳定性,微软从 Windows Vista X64 开始对系统内核增加了一定的限制,其主要增加了两种保护措施,一是KPP