MFC程序设计与C 相关技术外文翻译资料
2022-11-27 14:37:55
MFC Programming and C related technologies
MFC, Microsoft Foundation Classes (Microsoft Foundation Classes), is actually provided by Microsoft for the C environment for writing applications in a framework and engine, VC is to Windows, developers use professional C SDK (SDK, Standard SoftWare Develop Kit, professional software development platform), MFC is hung on it a supporting software development kit, MFC, as with the VC flesh and blood portion (Note C and VC differences: C is a programming language, is a we acknowledge the preparation of the general specification of software, and VC is a compiler, or a compiler source code editor IDE, WS, PlatForm, which Pascal and Delphis relationship with a truth, Pascal was the language of Delphi basic, Delphi Pascal specification for use under Win application development and compilation, but VB is different from the relationship between language and Basic, Basic language is developed in VB applications language has become the new norm Basic, VB newly added Basic language elements, such as the elements of object-oriented programming is a qualitative leap forward, so that both a VB IDE, and grow into a new programming language), MFC integration with BC VCL is a non-plug type as package, class library, but Microsoft MFC class is designed for the distribution of VC . Win API and MFC is a combination of C , API, that Microsofts Windows, the application programming language interface, is a software programming specifications, but is not a programming language itself, can allow users to use a variety of third parties (such as the I side, Microsoft is a party, Borland is the third party to) programming language for applications on Windows, the development of these applications were developed to run in Windows, such as VB, VC , Java , Delhpi essentially all of the programming language function from the API, so using them to develop applications that can work out the message in the Windows system and graphics, the compliance with Windows as an operating systems internal implementation, it is also a necessity, Microsoft If you do not provide API, this world of Windows programming job would not exist, Microsofts product will quickly become a garbage from the fashion, the above mentioned API function, MFC is a Microsoft proprietary C package, which allows users to combine the one hand, Microsofts Professional C SDK for Windows, application development easier, because MFC is the API package, Microsoft has done a lot of work, hiding a lot of application developers in Windows, using C amp; MFC preparation software for a large number of the section, such as the implementation of the message processing applications, equipment, environmental graphics, this combination is convenient for the purpose, we must pay the price (which is Microsofts style has always been), and therefore created a MFC class in the package of a certain degree of redundancy and circuitous, but this is acceptable .
Finally, understand that MFC is not just a function of simple interface development system, which provides most of the classes used to interface development, associated with a window of the action, but it provides a lot of class in the class is not associated with a window that the categories The role is not an interface class does not implement the control of a window object (such as the creation, destruction), but some in Windows (using MFC vast majority of programs written to run in Windows) to implement the internal processing of the class, such as database management etc.MFC encapsulates Microsofts API. What does that mean? As a provider of powerful windows application programming interface to the operating system, programmers do a lot of convenience, the traditional win32 development (direct interface functions with windows API) for programmers is very difficult because, API functions too more, and the name of the mess, from zero to a window frame is easily hundreds of lines of code. MFC is the object-oriented programming and the perfect combination of Application framework, he would have been classified in the traditional API package, and created a program for you general framework MFC is Windows API package, which greatly simplifies our work.
Programming Advantages With the innovation of programming languages, MFC shortcomings become increasingly prominent. The most important entry barrier is higher relative to other languages, but also to complete a task relatively large amount of code. The original advantages, such as running speed, etc., but also because of other programming languages and personal computers continue to improve computing speed increases appear less prominent. MFC seems bad to worse. MFC is really no advantage, but it? No, the face of the underlying process, it is very easy with the combination of Windows API or driver is in your own code to use API functions directly, while the API and driver information are based on C language-based, which makes VC programmers to more easily use Windows API.
C language development can be divided into three stages: The first stage, from 80 to 1995. This phase is basically C language is the traditional type of object-oriented language, and by virtue of the efficiency of close to C language, developed for use in the industrial sector accounts for a significant language share; The second phase from 1995 to 2000, this stage as the Standard Template Library (STL) and later the Boost libraries such as the emergence of generic programming in C , the proportion of occupied more and more sexual. Of course, the same as Java, C # and other languages and the emergence of large-scale hardware prices drop, C has been some impact; The third stage, from 2000 to date, due to Loki, MPL and other libraries as the representative of generative programming and template meta programming there, C appe
剩余内容已隐藏,支付完成后下载完整资料
MFC程序设计与C 相关技术
MFC,微软基础类库(Microsoft Foundation Classes),是由微软提供的一个框架和引擎,用于在C 环境下编写应用程序。VC 是Windows环境下开发人员使用的专业C SDK(SDK,标准软件开发工具包,专业的软件开发平台)MFC就是跟他挂钩的辅助软件开发包,MFC与VC 相连接的部分(注意C 与VC 的区别:C 是一种编程语言,是一种大家都认可的软件编写通用规范,而VC 是一个编译器,或者说是编译器和源程序编译器的IDE,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi 使用Pascal规范来进行Win下应用程序的开发和编译,却不同于 Basic 语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个 IDE,又成长成一个新的程序设计语言)MFC与BC 集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软专门为VC 配置的。Win API和MFC是C 和API的一个整合,是微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种变成语言,可以允许用户使用各种各样的第三方(比如我是一方,微软是一方,Borland就是第三方)编程语言在Windows环境中进行程序开发,使得这些被开发出来的应用软件能够在Windows下运行。比如VB,VC ,Java,Delhpi编程语言的函数,本质上全部源于API,因此用它们开发出来的应用程序都能在Windows的消息映射机制和绘图里工作,符合Windows作为一个操作系统的内部实现。这也很有必要,微软如果不提供API,这个世界上对Windows编程的工作就不会存在,微软的产品很快就会从流行变成垃圾。上面说到的API函数,MFC是微软专用的C 封装,这种结合,一方面让用户使用微软的专业C SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软已经做了大量的工作,隐藏了好多程序开发人员在Windows下调用C amp; MFC编制软件时的大量代码,如应用程序实现消息的处理,设备环境绘图,这种结合以方便为目的,所以必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。最后, MFC 不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作。但它提供的类中有好多类不与一个窗口关联,,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一 些在 Windows(用MFC编写的程序绝大部分都在Windows中运行)中实现内部处理的类。
MFC是微软封装了的API。什么意思呢?windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用windows的接口函数API) 对于程序员来说非常的困难, 因为API 函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,他将传统的API进行了分类封装,并且创建了程序的一般框架, MFC是对WindowsAPI的封装,大大简化了我们的工作
随着编程语言的推陈出新,MFC 一些缺点日益突出。最重要的就是入门门槛相对其他语言要高,而且同样完成一个任务代码量相对较多。而原有的优势如运行速度快等,也因为其他编程语言的日渐完善和个人电脑的运算速度增加而显得不那么突出。MFC似乎不再实用。但是MFC真的没有任何优势了吗?不是,面对底层程序,它能很轻松的与Windows API或驱动程序结合,就是在自己的代码中直接使用API函数,而API和驱动程序的资料都是以C语言为基础的,这使得VC程序员能够更轻松的使用Windows API。
C 语言发展大概可以分为三个阶段:第一阶段从 80 年代到 1995 年。这一阶段 C 语言基本上是传统类型上的面向 对象语言,并且凭借着接近 C 语言的效率,在工业界使用的开发语言中占据了相 当大份额; 第二阶段从 1995 年到 2000 年, 这一阶段由于标准模板库(STL)和后来的 Boost 等程序库的出现,泛型程序设计在 C 中占据了越来越多的比重性。当然,同时由 于 Java、C#等语言的出现和硬件价格的大规模下降,C 受到了一定的冲击; 第三阶段从 2000 年至今,由于以 Loki、MPL 等程序库为代表的产生式编程和 模板元编程的出现,C 出现了发展历史上又一个新的高峰,这些新技术的出现以 及和原有技术的融合,使 C 已经成为当今主流程序设计语言中最复杂的一员。
C 设计原则
· C 设计成静态类型、和 C 同样高效且可移植的多用途程序设计语言。
· C 设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料 抽象化、面向对象程序设计、泛型程序设计) 。
· C 设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。
· C 设计成尽可能与 C 兼容,籍此提供一个从 C 到 C 的平滑过渡。
· C 避免平台限定或没有普遍用途的特性。
· C 不使用会带来额外开销的特性。
· C 设计成无需复杂的程序设计环境
软件工程
软件工程是一门研究用工程方法来建立和维护有效,实用,高质量的软件的学科。它涉及到编程语言、数据库、软件开发工具、系统平台、标准、设计框架等等。
在现代社会中,软件被广泛应用。典型的软件像电子邮件、嵌入式系统、人机交互接口、办公软件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,提高人们的工作效率,同时提升了生活质量。 软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员、软件设计师、系统架构师、程序员、测试员等等。人们也常常用程序员来泛指各种软件工程师。
由来
鉴于软件开发时所遭遇困境,北大西洋公约组织(NATO)在 1968 年举办了首次软件工程学术会议,并于会中提出“软件工程”来界定软件开发所需相关知识,并建议“软件开发应该是类似工程的活动”。软件工程自 1968 年正式提出至今,这段时间累积了大量的研究成果,广泛地进行大量的技术实践,借由学术界和产业界的共同努力,软件工程正逐渐发展成为一门专业学科。
定义
创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件.
应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。
开发、管理及更新软件产品有关的理论、方法及工具。
一种知识或学科(discipline),目标是生产品质良好、准时交货、符合预算,并满足用户所需的软件。 实际应用科学知识在设计、建构电脑程序,与相伴而来所产生的文件,以及后续的操作和维护上。
使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。
建造由工程师团队所开发之大型软件系统有关的知识学科。 对软件分析、设计、实施及维护的一种系统化方法。 系统化地应用工具和技术于开发以计算机为主的应用。
软件工程与计算机科学
软件的开发到底是一门科学还是一门工程,这是一个被争论了很久的问题。实际上,软件开发兼有两者的特点。但是这并不意味着它们可以被互相混淆。很多人认为软件工程基于计算机科学和信息科学就如传统意义上的工程学之于物理和化学一样。在美国,大约 40%的软件工程师具有计算机科学的学位。在世界其他地方,这个比例也差不多。他们并不一定会每天使用计算机科学方面的知识,但是他们每天都会使用软件工程方面的知识。
例如 Peter McBreen 认为,软件“工程”意味着更高级别的严谨性与证明过程,并不适合现阶段各类型的软件开发。Peter McBreen 在著作《Software Craftsmanship: The New Imperative》提出了所谓“craftsmanship”的说法,认为现阶段软件开发成功的关键因素,是开发者的技能,而不是“manufacturing”软件的流程。
软件工程与计算机程序设计
软件工程存在于各种应用中,存在于软件开发的各个方面。而程序设计通常包含了程序设计和编码的反复迭代的过程,它是软件开发的一个阶段。
软件工程对软件项目的各个方面作出指导,从软件的可行性分析直到软件完成以后的维护工作。软件工程认为软件开发与各种市场活动密切相关。比如软件的销售,用户培训,与之相关的软件和硬件安装等。软件工程的方法学认为一个独立的程序员不应当脱离团队而进行开发,同时程序的编写不能够脱离软件的需求,设计,以及客户的利益。
软件工程的发展是计算机程序设计工业化的体现。
软件危机
软件工程的兴起要根源于 20 世纪 60,70 和 80 年代的软件危机。在那个时代,很多的软件最后都得到了一个悲惨的结局。很多的软件项目开发时间大大超出了规划的时间表。一些项目导致了财产的流失,甚至某些软件导致了人员伤亡。同时软件开发人员也发现软件开发的难度越来越大。 OS 360 操作系统被认为是一个典型的案例。到现在为止,它仍然被使用在IBM360 系列主机中。这个经历了数十年,极度复杂的软件项目甚至产生了一套不包括在原始设计方案之中的工作系统。
OS 360 是第一个超大型的软件项目,它使用了 1000 人左右的程序员。Fred Brooks 在随后他的大作《人月神话》( The Mythical Man-Month )中曾经承认,在他管理这个项目的时候,他犯了一个价值数百万美元的错误。
财产的损失:软件的错误可能导致巨大的财产损失。欧洲的Ariane火箭的爆炸就是一个最为惨痛的教训。
人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息相关的行业。因此软件的错误也有可能会导致人员伤亡。 在软件工程界被大量引用的案例是 Therac-25 的意外. 在 1985 年六月到1987 年一月之间, 六个已知的医疗事故来自于 Therac-25 错误地超过剂量, 导致患者死亡或严重辐射灼伤。
在工业上,某些嵌入式系统导致机器的不正常运转,从而将一些人推入了险境。
方法学
软件工程的方法有很多方面的意义。包括项目管理,分析,设计,程序的编写,测试和质量控制。 软件设计方法可以区别为重量级的方法和轻量级的方法。重量级的方法中产生大量的正式文档。
著名的重量级开发方法包括 ISO 9000,CMM,和统一软件开发过程(RUP)。
轻量级的开发过程没有对大量正式文档的要求。著名的轻量级开发方法包括极限编程(XP)和敏捷过程(Agile Processes)。
根据《新方法学》这篇文章的说法,重量级方法呈现的是一种“防御型”的姿态。在应用“重量级方法”的软件组织中,由于软件项目经理不参与或者很少参与程序设计,无法从细节上把握项目进度,因而会对项目产生“恐惧感”,不得不要求程序员不断撰写很多“软件开发文档”。而轻量级方法则呈现“进攻型”的姿态,这一点从 XP 方法特别强调的四个准则—“沟通、简单、反馈和勇气”上有所体现。目前有一些人认为,“重量级方法”适合于大型的软件团队(数十人以上)使用,而“轻量级方法”适合小型的软件团队(几人、十几人)使用。当然,关于重量级方法和轻量级方法的优劣存在很多争论,而各种方法也在不断进化中。
一些方法论者认为人们在开发中应当严格遵循并且实施这些方法。但是一些人并不具有实施这些方法的条件。实际上,采用何种方法开发软件取决于很多因素,同时受到环境的制约。
软件开发过程
软件开发过程是随着开发技术的演化而随之改进的。从早期的瀑布式(Waterfall)的开发模型到后来出现的螺旋式的迭代(Spiral)开发,以致最近开 始兴起的敏捷开发方法(Agile),他们展示出了在不同的时代软件产业对于开发过程的不同的认识,以及对于不同类型项目的理解方法。
注意区分软件开发过程和软件过程改进之间的重要区别。诸如像 ISO 15504, ISO 9000, CMM, CMMI 这样的名词阐述的是一些软件过程改进框架,他们提供了一系列的标准和策略来指导软件组织如何提升软件开发过程的质量、软件组织的能力,而不是给出具体的开发过程的定义。
软件工程的发展方向
“敏捷开发”(Agile Development)被认为是软件工程的一个重要的发展。它强调软件开发应当是能够对未来可能出现的变化和不确定性作出全面反应的。
敏捷开发被认为是一种“轻量级”的方法。在轻量级方法中最负盛名的应该是“极限编程”(Extreme Programming,简称为 XP)。而与轻量级方法相对应的是“重量级方法”的存在。重量级方法强调以开发过程为中心,而不是以人为中心。重量级方法的例子比如 CMM/PSP/TSP。
面向方面的程序设计(Aspect Oriented Programming,简称 AOP)被认为是近年来软件工程的另外一个重要发展。这里的方面指的是完成一个功能的对象和函数的集合。在这一方面相关的内容有泛型编程(Generic Programming)和模板
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[26035],资料为PDF文档或Word文档,PDF文档可免费转换为Word