软件技术开发名词
(完整版)名词解释(软件工程)

三、名词解释1、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。
2、软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
3、数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
4、模块化:是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可能完成指定的功能满足问题的需求。
5、类:对具有相同数据和相同操作的一组相似对象的定义。
6、软件危机: 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
7、软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程.8、继承:子类自动地共享基类中定义的数据和方法的机制.9、投资回收期: 就是使累计的经济效果等于最初投资的需要的时间。
10、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。
11、软件的生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃所经历的一系列时期。
12、投资回收期:就是使累计的经济效果等于最初投资的需要的时间。
13、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。
14、模块:数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问。
15、宽度:是软件结构内同一个层次上的模块总数的最大值。
16、事务流:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。
这类数据流应该划分为一类特殊的数据流,称为事务流。
17、耦合:衡量不同模块彼此间互相依赖的紧密程度。
18、事件:是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的事件的抽象。
19、函数重载:指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。
软件工程名词解释汇总

软件工程名词解释汇总软件工程名词解释汇总1·软件工程(Software Engineering):软件工程是一门应用计算机科学和数学原理以及工程方法论来开发、维护和管理软件项目的学科。
2·软件生命周期(Software Development Life Cycle, SDLC):软件生命周期是指软件开发过程的不同阶段,包括需求分析、设计、编码、测试和部署等。
3·需求工程(Requirements Engineering):需求工程是软件工程中的一个重要阶段,旨在理解和定义用户需求,并将其转化为可执行的软件规格说明。
4·设计模式(Design Pattern):设计模式是在软件设计中反复出现的问题的解决方案,它是一种被广泛接受和验证的经验总结。
5·可行性研究(Feasibility Study):可行性研究是对软件项目进行评估,以确定项目的可行性和可行性报告。
6·原型开发(Prototyping):原型开发是一种快速开发技术,通过创建软件的原型来验证系统需求,以便更好地满足用户的期望。
7·面向对象(Object-Oriented):面向对象是一种软件开发方法,其基本思想是以对象为中心,将问题划分为一组相互作用的对象。
8·可移植性(Portability):可移植性是指软件在不同平台上的可运行性,包括硬件和操作系统。
9·故障排除(Troubleshooting):故障排除是一种通过逐步分析和排除故障来修复软件或硬件故障的方法。
10·用户界面(User Interface, UI):用户界面是用户与软件交互的界面,包括图形界面、命令行界面等。
11·数据库管理系统(Database Management System, DBMS):数据库管理系统是一种用于管理和组织数据的软件系统,它提供了对数据的存储、检索和操作等功能。
软件工程名词解释和简答题总结

软件工程名词解释和简答题总结软件工程是现代技术领域中的一个重要分支,它涉及软件开发的各个方面。
在软件工程的学习和实践过程中,我们会遇到大量的专业名词和简答题。
本文将对一些常见的软件工程名词进行解释,并对一些常见的简答题进行总结。
一、软件工程名词解释1. 软件开发生命周期(Software Development Life Cycle,SDLC):指软件产品从定义需求到交付使用的全过程,包括需求分析、软件设计、编码测试、部署和维护等阶段。
2. 需求工程(Requirement Engineering):指在软件开发的早期阶段通过系统分析和用户需求收集,明确用户需求、软件功能和性能等要求的过程。
3. 原型化开发(Prototyping):指在软件开发的早期阶段建立可操作的原型,以便用户和开发者共同验证需求、功能和界面设计。
4. 面向对象(Object-Oriented):是一种软件开发方法,将程序设计看作是对象之间的消息传递,以对象为中心进行分析和设计。
5. UML(Unified Modeling Language):是一种用于软件工程的标准建模语言,用于描述软件系统的结构和行为,包括类图、时序图、活动图等。
二、简答题总结1. 简述软件工程的目标和原则。
软件工程的目标是通过科学化、系统化和规范化的方法,提高软件开发过程的质量和效率,满足用户需求。
其原则包括可行性、适应性、可理解性、可移植性、可维护性等。
2. 解释并比较瀑布模型和敏捷开发模型。
瀑布模型是软件开发中的经典模型,将软件开发过程划分为需求分析、设计、编码、测试和维护等阶段,各阶段按顺序进行,流程线性。
而敏捷开发模型强调快速迭代和用户反馈,将开发过程划分为多个迭代周期,每个周期完整包含需求分析、设计、编码、测试和交付等阶段。
3. 什么是软件需求规格说明书?软件需求规格说明书是在需求工程阶段编写的文档,用于明确软件系统的需求、功能和性能等要求。
解读计算机软件的技术术语与专业名词

解读计算机软件的技术术语与专业名词计算机软件是现代社会中不可或缺的一部分,它带来了许多技术术语和专业名词。
这些术语和名词通常用于描述软件开发、编程和计算机系统的各个方面。
本文将解读计算机软件的技术术语与专业名词,以帮助读者更好地理解和应用这些概念。
一、程序(Program)程序是计算机上可以执行的指令集合。
它指定了计算机要完成的任务,并告诉计算机如何按照特定的顺序执行这些任务。
程序可以采用不同的编程语言编写,例如C++、Java和Python等。
程序是软件的基本组成部分,它通过执行指令来实现特定的功能。
二、算法(Algorithm)算法是解决特定问题的步骤或方法。
它描述了一系列操作,以帮助解决问题并达到期望的结果。
算法可以用伪代码或特定的编程语言表示,它是程序设计的基础。
好的算法可以提高程序的效率和性能。
三、编程语言(Program Language)编程语言是一种用于编写程序的形式化语言。
它定义了一组规则,用于在计算机上表达和实现算法和计算过程。
常见的编程语言包括C、C++、Java、Python和Ruby等。
不同的编程语言具有不同的语法和特性,开发者可以根据需求选择合适的编程语言。
四、软件工程(Software Engineering)软件工程是一门研究和应用工程原则和方法的学科,用于开发和维护高质量的软件系统。
它涵盖了软件项目的生命周期,包括需求分析、设计、编码、测试和维护等阶段。
软件工程的目标是提高软件的可靠性、可维护性和可重复性。
五、编译器(Compiler)编译器是一种将高级程序代码翻译为机器语言或字节码的程序。
它将程序代码作为输入,经过词法分析、语法分析、语义分析和代码生成等过程,生成可执行的目标代码。
编译器可以将整个程序一次性翻译为目标代码,也可以采用解释执行的方式逐行翻译和执行程序。
六、操作系统(Operating System)操作系统是计算机系统的核心组件,它管理计算机硬件和软件资源,为用户和应用程序提供接口和服务。
计算机科学与技术专业名词

计算机科学与技术专业名词以下是计算机科学与技术专业中常见的一些名词:1. 数据结构(Data Structures):用来存储和组织数据的方式或方式的选择。
2. 算法(Algorithm):用于解决问题或执行特定任务的步骤序列。
3. 编程语言(Programming Language):用于编写计算机程序的形式化语言,例如Java、C++、Python等。
4. 操作系统(Operating System):控制并管理计算机硬件和软件资源的程序。
5. 数据库(Database):用于存储和管理数据的结构化集合。
6. 网络(Network):计算机之间通过通信连接而形成的互联网。
7. 计算机体系结构(Computer Architecture):包括硬件和软件组件的计算机系统设计。
8. 人工智能(Artificial Intelligence):计算机系统模拟和实现人类智能的学科。
9. 图形学(Computer Graphics):处理和生成图像的计算机科学分支。
10. 软件工程(Software Engineering):应用工程原理和方法来开发和维护大规模软件系统的实践。
11. 网络安全(Network Security):保护计算机网络免受未经授权访问、破坏或泄漏的科学和技术。
12. 人机交互(Human-Computer Interaction):研究和设计人类与计算机之间的界面和交互方式。
13. 云计算(Cloud Computing):通过互联网提供计算资源和服务的模型。
14. 虚拟现实(Virtual Reality):通过计算机生成的模拟环境,使用户可以与其进行交互。
15. 编译器(Compiler):将高级语言代码转换为低级机器代码的程序。
这些只是计算机科学与技术专业的一小部分名词,该领域有非常广泛的学科和专业术语。
B 端软件必知 100 个专业名词

B 端软件必知100 个专业名词B端软件是帮助企业进行运营和管理的工具。
下面是一些常见的B端软件专业词汇,希望对大家有用:1. ERP (Enterprise Resource Planning) - 企业资源计划,比较基础的信息化系统,帮助企业全面管理进销存、财务、人力资源等各个方面,但是在一些专业领域能力较弱,比如仓储管理、运输管理等。
2. CRM (Customer Relationship Management) - 客户关系管理,专注于帮助企业管理从销售线索到销售合同的全过程。
3. HRM (Human Resource Management) - 人力资源管理,帮助企业招聘、培训和管理员工。
4. SCM (Supply Chain Management) - 供应链管理,确保产品从原材料到成品再到客户的整个流程高效运转。
5. BI (Business Intelligence) - 商业智能,通过数据分析帮助企业做出更明智的决策。
6. BPM (Business Process Management) - 业务流程管理,支撑和优化企业的日常工作流程。
7. OA (Office Automation) - 办公自动化,提高办公室工作效率,比如审批、邮件和文档等。
8. SaaS (Software as a Service) - 软件即服务,通过互联网提供软件服务,用户无需安装即可使用,一般按年收费,而不是一次性买断。
目前也存在SaaS 和传统软件的混合体:部署在本地,但是按年收费,而不是买断。
9. PaaS (Platform as a Service) - 平台即服务,提供给开发者一个平台来构建、运行和管理应用程序。
现在一些PaaS也面向业务人员,通过零代码方式完成相对简单的应用程度搭建。
10. IaaS (Infrastructure as a Service) - 基础设施即服务,提供虚拟化的计算资源,类似于虚拟服务器。
软件工程名词解释汇总

软件工程名词解释汇总软件工程名词解释汇总软件工程是一门研究使用系统性和科学性的方法开发、维护和管理软件的学科。
在软件工程领域,有许多重要的名词需要我们了解和掌握。
本文档将详细解释这些名词的含义和作用。
1.软件需求软件需求是指在软件开发过程中对系统的功能、性能、接口等方面的描述和规定。
它是软件工程的基础,包括用户需求、系统需求和软件需求规格。
2.软件设计软件设计是指根据软件需求,将系统分解为更小的模块,并确定模块之间的关系和功能。
它包括结构设计、数据设计和接口设计等方面。
3.软件开发软件开发是指根据软件设计,使用编程语言和开发工具进行编码和测试,以实现软件系统的功能。
它包括需求分析、设计、编码、集成和测试等阶段。
4.软件测试软件测试是指通过一系列测试方法和技术,验证软件系统的正确性、完整性和稳定性。
它包括单元测试、集成测试、系统测试和验收测试等阶段。
5.软件维护软件维护是指对已经交付使用的软件进行修改、优化和修复缺陷,以满足用户的需求和改进软件的质量。
它包括纠错性维护、适应性维护和完善性维护等方面。
6.软件过程模型软件过程模型是指将软件开发过程划分为不同的阶段,并确定每个阶段的任务和产出物。
常见的软件过程模型有瀑布模型、迭代模型和敏捷开发模型等。
7.软件配置管理软件配置管理是指对软件和其相关文档进行版本控制、变更管理和发布管理的过程。
它包括配置项识别、变更控制和配置审计等方面。
8.软件工程质量软件工程质量是指软件系统满足用户需求、具备良好性能和稳定性的程度。
它包括功能性质量、性能质量和可维护性质量等方面。
9.Lean软件开发Lean软件开发是一种以减少浪费和提高价值创造为核心的敏捷软件开发方法。
它强调团队协作、持续改进和快速交付。
10.DevOpsDevOps是一种将软件开发和运维进行整合的方法。
它通过自动化工具和流程,实现软件系统的快速交付和稳定运行。
11.持续集成持续集成是一种通过频繁地将开发人员的代码合并到主干分支,并经过自动化测试和构建,保证软件系统的稳定性和可靠性。
研发部需要的名词解释

研发部需要的名词解释在现代企业中,研发部门扮演着至关重要的角色,促进企业的创新和发展。
然而,对于非技术背景的人来说,研发部门可能充满了各种专业术语和名词,让人望而却步。
因此,本文将对一些研发部门常用的名词进行解释,以帮助大家更好地了解和融入研发团队。
第一,原型开发。
在创新过程中,原型开发是一个至关重要的阶段。
原型开发指的是制作出最初的产品或模型,用于测试和验证新概念的可行性。
研发部门通常将原型开发作为创新过程的起点,通过迭代和改进,逐步打磨出最终的产品或解决方案。
第二,需求分析。
需求分析是研发部门必不可少的工作之一。
它指的是详细了解和明确项目或产品的功能、特性和限制。
通过需求分析,研发团队能够更好地理解用户的需求和期望,从而指导后续的设计和开发工作。
第三,敏捷开发。
敏捷开发是一种软件开发的方法论,旨在提高开发效率和灵活性。
与传统的瀑布模型不同,敏捷开发强调合作、迭代和快速响应变化。
研发部门常常采用敏捷开发方法,使团队更好地适应快速变化的需求,提供高质量的产品和服务。
第四,多元化团队。
多元化团队指的是在研发部门中拥有不同技能、经验和背景的成员组成的团队。
这种团队结构可以促进创新和跨学科的合作,为项目的成功提供更多可能性。
多元化团队能够从不同的角度和视角来解决问题,提供更全面的解决方案。
第五,知识管理。
知识管理在研发部门中扮演着至关重要的角色。
知识管理涉及整理、存储和传递知识和经验,以促进团队的学习和发展。
在一个不断变化的技术环境中,研发部门需要能够及时获取和分享知识,以保持竞争力和创新能力。
第六,持续集成。
持续集成是一种软件开发的实践和方法,旨在加快产品交付的速度和质量。
持续集成通过将开发人员的工作集成到共享代码库中,并自动进行构建和测试,以减少错误和提高团队的协作效率。
研发部门通常采用持续集成来确保团队高效、高质地交付产品。
第七,创新管理。
创新管理是在企业内部管理和推动创新的一套方法和策略。
研发部门通常是公司创新的核心,需要有创新管理的能力来推动团队的创新和发展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Win32编程”很不幸,我从开始学习编程到理解这个名词中间隔了很长的时间(上个世纪的学习环境可见一斑)。
很长时间里我都不明白32是指什么,我用过Dos,Win31,win95,win97...但好像没用过名为Win32的操作系统啊?很久以后我才知道,32在这里并不是指操作系统的版本号,而是指32位。
微软操作系统在win31及其以前都是DOS系统,windows只是在dos下运行的一个大程序而已。
在其后win95则稍有改变,windows除了DOS核心以外也真正成为了操作系统的一部分,提供着各类操作系统提供的服务。
应该说,在win95之后的windows(新近的64位win系统以前)都可以称之为win32系统平台(95/98实际上是16与32位混合)。
所以在这样的平台上,直接或间接使用系统提供的API编程,就称之为Win32编程。
对V isual Studio而言,Win32编程一般指SDK、MFC、A TL这几类开发方法,其中A TL在国内应用不是很广泛,一般应用于以COM组件为架构的中大型软件产品。
"SDK" :Software Development Kit,常译为软件开发(工具)包在Win32编程领域一般指与MFC这类框架编程相区别的,直接调用Windows提供的API的开发方式,与字面原意有一些区别。
另外一个经常见到的说法就是某软件(硬件)带有自己的一套SDK,这里其实一般是指一套API库函数或者类库,供上一层的开发者调用。
又譬如常说的DX的SDK,其实是微软开发的一套COM组件,供上层开发者使用。
总之,供程序员使用的比较完备的代码库,就可以称之为SDK;“MFC”: Microsoft Fundation classes 微软基础类库大家都知道,使用SDK编程方式往往有很多每次都重复的固定不变的一些代码,为了提高编程的效率,减少上千个API带给开发人员巨大的精神压力,微软开发出了这么一个类库,注意,这个类库与操作系统本身无任何关系,它只是对API进行了一个面向对象的封装,当然,还给出了一系列编程的框架。
使用SDK的方法,使用Visual Studio,通过调用Windows API,MFC你也可以做得出来。
MFC把一些固定不变的代码已经写好了,只在编译时候链上,所以我们的代码里看不到WinMain(),而事实上整个程序的运行,和SDK的方式无任何区别,初学者请记住这一点。
另,补充一点个人感想,MFC的初衷,带给开发人员更多的便利,我觉得并不太成功。
学习MFC所费的力气和最终的所得,并不太成正比。
"API":Application Programming Interface,应用程序接口这个词的出现频率很高,从某种意义上来说,也可以看作是SDK的一个子集。
这也是做给程序员的程序,不过一般指用导出函数的方式提供服务的函数库,不包括类库和组件。
“GDI”:Graphic Device Interface,图形设备接口这个是Win32程序下最常用的显示方式,与DirectX、OpenGL处于同一级。
在DOS要显示一些东东可不是容易的事,最简单的是调用一些C的图形库函数来实现显示,不过一般也就是些画线,填色,输出几个文字,效果很弱(所以DOS程序界面一般都不怎么样,且实现起来不是一般的复杂),要复杂一点的动画/图片显示什么的,经常要用到的就是硬件中断,调用一些显卡自身的子程序(固化在显卡内的)来做。
因为每一个显卡都不同,所以DOS的游戏兼容常常由于显卡的差异而很糟糕。
到Windows下大家就幸福多了,Windows 将硬件这一层屏蔽起来,用一个表格(Device Context)来代表一个显示,我们要做的就是在这个表格上填好相关参数,然后画上我们想画的东东,然后操作系统会依照这个表格(DC),把相应的显示内容(一般是一块显示内存)传送到指定显卡的指定的显存,再由显卡传给显示屏。
我们不再需要与不同的显卡打交通,这是一个十分伟大的胜利!GDI中最常用的是双缓存技术,就是说你可以在内存中创建(也就是复制)一个DC,只不过在这个DC中显示的不再被传送到显示器上。
有什么用呢?因为它的各参数是与当前屏幕DC一致的(COPY嘛,当然是这个结果),所以它的显示内容可以完整无失真地传送到屏幕DC上。
我们通常在内存DC上画图,譬如画一圆,再画一条直线,画完后一次性地传送到屏幕DC 上,这样对用户来说屏幕只刷新了一次,可以解决你画一点内容屏幕即刷新一次导致的闪烁问题。
当然,双缓冲甚至多缓冲还有很多别的用处,那就要靠自己揣摩了。
"DirectX"通常简称为DX(读音:低叉)这是个很吸引人眼球的名词,读起来就很上口:)。
Windows 为我们作了许多屏蔽底层硬件的工作,其中DX是最知名的技术之一。
操作系统要与各类硬件打交道,特别是多媒体相关的,譬如显卡、声卡、手柄输入、多媒体流的网络传输等等,这些事情如果都自己来弄的话,那就太要命了(这些一般都涉及系统底层,自己也很难做出来)。
而DX则正是这么一套操作系统提供的隔离多媒体硬件与程序员的间质,DX自身一般并不实现处理的能力,它是一个标准,要求硬件来满足,好比DX提供一个函数名,硬件来实现函数内容一样。
通过它我们可以非常简单而快速地调用硬件提供的各类服务。
它主要包括DirectDraw(通过直接访问显示硬件来提供快速的图象处理能力),DirectSound(提供了软硬件的低延迟声音混频和回放,以及直接访问音频设备的能力),DirectPlay (它明确的提供了通用环境连接能力来简化你应用程序之间的通讯服务),Direct3D(DirectDraw的3D版),DirectInput(简化你的应用程序访问鼠标、键盘和操纵杆设备的能力),DX5.0之后又增加了一些(如DirectShow),不再详述。
DX一个重要的特点就是你可以通过它直接访问硬件而无需知道硬件的具体细节。
譬如DirectDraw,就能够越过内存而直接访问显存,这样的速度将比GDI快很多,不在一个数量级上。
补充一点:DX是以组件的方式提供的,而不是通常的导出API的形式。
DX SDK的最新版本是9.0"COM”:component object model,组件对象模型,一般简称组件这是微软为了解决代码重用的一个重要机制。
重用代码的最简单办法是源代码重用,把写好的函数和类加到自己当前的代码中,编译即可。
简单是简单,敝病却显然的多。
另一个常用的方法是单独做成模块,以DLL的形式分发,DLL导出函数或者类,客户程序用动态/静态链接的方法将其加载,这显然比前一种源代码的方法好一些,难度也不大,最为常用。
但DLL也有一些不足,最根本的,它不是二进制兼容,DLL版本升级一次就需要与客户程序代码重链接一次,有些时候这几乎是不可能的任务。
为了更好地让编程像“搭积木”一样简单,让模块可以完美地配合,完美地替换,COM产生了。
COM不是类库,不是代码,不是操作系统的服务,而是一套编程模型,理论上来说,它与语言无关,与操作系统无关,unix下同样可以做COM。
COM是一种程序结构模型标准,你做的DLL或EXE在结构上满足这么一个标准,那这个DLL或EXE就是一个组件,它将在该平台上成为二进制兼容。
COM主要利用了注册表来登记本模块的信息。
客户程序调用时首先查注册表,找到所需组件的位置(这实现了位置透明),然后就用Loadlibrary把它加载进来,这和普通调用没有本质区别,区别在于由于组件特殊的实现方法使得整个过程中用户程序都不知道组件的位置,组件的类的实例化过程,如何销毁,不能直接访问组件的任何实现细节,用户只与组件的几个public接口打交道。
这将实现真正的模块之间的独立。
对用户程序而言,对于目标组件的认识,除了接口,一无所知。
在接口不变的情况下,组件可任意替换而客户程序不作任何改动,无需编译,仅这一点,在中大型程序的模块集成的过程中就将节约相当多的时间。
"STL":Standard Template Library,标准模板库这是最早由Alexander Stepanov和Meng Lee(蛮像中国人的名字)完成,于1994年提交给ANSI/ISO 标准C++委员会并通过而成为标准C++的一部分。
望文生义即可知这是一个代码库标准,不是语法标准。
简单地说,STL是以C++中的模板语法为基础建立起来的一套包含基础数据结构和算法的代码库。
STL的特点是实现了“类型参数化”,即STL的代码中可处理任意自定义类型的对象,如果不使用模板技术的话,这是一件相当困难的事。
也因为这个原因,在最新的java及C#语法中均加入了对模板语法的支持,可见其重要性。
另外一个有关STL重要的话题是GP(Generic Programming),泛型。
这是与面向对象相并列的另外的一个编程模型,它以模板为基础,弱化了实体类型的差异,简化了编程时问题抽象的模型,提供了更好的封装性和弹性,对于繁杂的面向对象编程毫无疑问是一种解脱,至少是精神上的。
GP并不是用来取代面向对象的,而是作为一个有益的补充体,是面向对象很好的合作伙伴。
GP是最近几年软件架构的一个研究热点,但国内真正的应用似乎并不多见,这项技术本身还基本处于研究前沿。
<<Modern C++ Design>>一书对C++中的GP应用有很好的诠释,而这本书对脑细胞的杀伤力之大,也是其它C++书藉望尘莫及的。
想知道C++的代码技巧可以做到怎样的出神入化吗?不妨看看这本书。
"A TL":Active Template Library,活动模板库这在VC编程下应该算是比较高级的话题了,它集COM和模板技术于一身,带来了极方便的组件编写方法和极高的学习门槛。
可以说,进入A TL领域就算是进入了中级以上的编程领域。
A TL是为组件而生,它的目的是为了让程序员更方便地编写组件(纯用C++写一个最简单的组件实现一个“Hello World”对初学者来说都是要命的),同时它使用模板技术来类似于MFC一样建立了一个开发COM的框架代码库(模板库),使用该框架及模板库可以相对方便地进行组件开发。
A TL中的一个特点就是你自己的类将成为ATL代码库中某些类的父类,这是一件很有趣的事(这也是模板技术的一个特点)。
"HANDLE": 句柄这是一个中文翻译很古怪的字,对初学者来说是百思不得其解的东东。
这其实等价于void*(顺便提一下,初学者往往对VC代码中各种古怪的符号、类型标记/宏等百思不得其解,其实它们大多来自基本类型的#define或者typedef,请将光标移到这些符号上(譬如HANDLE),然后按下F12,编译器自会把你带到它的声明处,反复使用几次,你终会见到它的原貌,然后长吁一口气:原来不过如此而已。