- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFCWTLATLSTL联系与区别
MFC、WTL、ATL、STL联系与区别?? 这个要先从C++和VC++说起!?? c++是一门语言,它与平台无关。只要能提供c++编译器(或者交叉编译器)的平台,就能用c++编程。基本上常见的操作系统都有C++编译器或交叉编译器,所以你可以认为几乎所有的平台都可以使用C++编程。? 首先要明确,严格来说VC++不是语言,而是一个工具软件。他甚至不是编译器,而是一个开发环境(VC++的编译器实际上只是一个可执行文件cl.exe),用这个环境能帮你用C++快速的开发出各种win32程序。?? C++具有语言标准,这个标准由ISO批准的。所谓标准就是任何C++编译器都应该遵守的,包括cl.exe。所以学好标准的C++就能在任何平台上开发。但是各个编译器除了支持标准以外,还在不与标准冲突的范围内进行了语法扩充,当然是为了能够更高效方便的开发程序。?? 光有语言能做的事情非常少,在操作系统上跑需要有各种现有的程序的支持,这些支持通常以库的形式表现出来。比如C标准库,C++标准库,这两个是标准的。非标准的就有像楼主所说的MFC之类的。非标准的库有些跨平台有些不能,相信我,微软的库基本上都跨不了什么平台。。。。最多是从WINNT跨到WIN9X。。。? 下面比较这几个库:??? STL(标准模板库)的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。用泛型实现最为常用的容器,迭代器,和算法。容器为你可以拼命加入同类对象而不必关心其容量大小的东西,除非内存空间已用完,它会自动为你调整空间,使你从底层细节的苦海脱离岀来,用更多的精力去创造更为实用的东西,迭代器为容器的索引,类似语言所定义的指针,然而这东西并不是指针,明显地说,它是精心设计的与各种容器相匹配的众多类的某个类的对象,简单说它是一个类对象,对其进行自增与自减操作,与指针的不同是它返回的是逻辑上相连的元素的索引,元素对象可能分散在不同的物理空间,而对指针进行同样的操作只是简单地向前或后移动对象大小个字节的物理地址,并且你没有方法去检测你指针的索引已经脱离对象队列,因此更易产生致命错误。泛型算法主要是提拱相同算法使用的灵活性。????ATL(活动模板库)是一个产生C++/COM代码的框架,就如同C语言是一个产生汇编代码的框架。ATL又不同于MFC,它完全面向COM组件,其技术路线也不同于MFC,MFC使用的是C++中的继承、封装、嵌套等常规技术,而ATL使用了C++中模板、多继承等高级技术,甚至还用到了STL。??? WTL全称为Windows Template Library,构架于ATL之上,采用C++模板技术来包装大部分窗口控制,并给出一个与MFC相似的应用框架。?? MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。VC++是Windows下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范;而VC++只是一个编译器,或者说是一种编译器+源程序编辑器的IDE,WSPlatForm,这跟Pascal和Delphi的关系一个道理。Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系。Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言)。MFC同BC++集成的VCL一样是一个非外挂式的软件包类库,只不过MFC类是微软为VC++专配的。 MFC是Win API与C++的结合。API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB、VC++、Java、Delhpi。编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必要。微软如果不提供API,这个世上对Windows编程的工作
文档评论(0)