1.3 Visual C++.NET 2003 开发环境

37
Windows Windows 编编 编编 06/08/22 06/08/22 编编编编编编编编 编编编 编编编编编编编编 编编编 1.3 Visual C++.NET 2003 1.3 Visual C++.NET 2003 开开开 开开开 开1 Visual C++.net Visual C++.net 开开 开开 12 开开开开开开开 开开 开开 Platform SDK Platform SDK 编 Windows 编 Internet Explorer 编编编编编编编编编编编编编 (API) 编编编编编编编编编 编编编编 Platfor m SDK 编编编编编编编编编编编编编编编编编编编编编编编.NET Framework SDK 编编编编编编编编 DLL 编编编编编编编编编编编编编编编编编 编编编编编编编编编编 、、 Web 编编编编编编编编 编编编编编编编编编编编编编 .NET Framework 编编

description

功能. 说明. Platform SDK. Platform SDK 是 Windows 和 Internet Explorer 版本支持的应用程序编程接口 (API) 的完整参考资料来源。可以使用 Platform SDK 头文件和库来生成使用任何已发布的功能的应用程序。. .NET Framework SDK. 开发人员可用包括 DLL 、工具和示例的丰富资源来生成高效的、强大的和可缩放的基于 Web 的应用程序和服务,这些应用程序和服务利用了新 .NET Framework 技术。. 第 1 章 Visual C++.net 简介. - PowerPoint PPT Presentation

Transcript of 1.3 Visual C++.NET 2003 开发环境

Page 1: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

12 .软件开发工具包

功能 说明

Platform SDK Platform SDK 是 Windows 和 Internet Explorer 版本支持的应用程序编程接口 (API) 的完整参考资料来源。可以使用 Platform SDK 头文件和库来生成使用任何已发布的功能的应用程序。

.NET Framework SDK 开发人员可用包括 DLL 、工具和示例的丰富资源来生成高效的、强大的和可缩放的基于 Web 的应用程序和服务,这些应用程序和服务利用了新 .NET Framework 技术。

Page 2: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

1.3.3 解决方案和项目

在使用 Visual C++.NET 编写应用程序时,经常使用解决方案和项目两个名称概念。 解决方案:类似于 Visual C++ 6.0 的工作空间( WorkSpace )概念。解决方案包含项目及其下属项,也可包含与项目无关的文件:共享解决方案项和其他文件。解决方案使开发者可以将组织设计、开发和部署应用程序或组件所需的所有项目和文件集中到一起。 项目:是 Visual C++.NET 编译执行的基本单元。通过编译可生成一个 EXE 文件,或 DLL 文件,或 OCX 文件等。开发项目时,解决方案下的项目只有一个可以作为当前可编译项目。

Page 3: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

1.3.4 托管 C++ 1 .什么是托管 C++托管 C++ 是指 C++ 的托管扩展。 C++ 托管扩展是一组 C++语言扩展,它是在 C++ 基础上建立起来的,用于帮助 visual C++ 程序员开发. NET 框架应用程序。托管 (Managed) 是. NET 的一个专门的概念,它是融于公共语言运行库 (CLR) 中的一种新的编程理念。公共语言运行库是. NET 框架应用程序的执行引擎,它提供了许多服务,其中包括:代码管理 ( 装入和执行 ) 、类型安全性验证、元数据 ( 高级类型信息 ) 访问、为管理对象管理内存、管理代码, COM 对象和预生成的 DLLs( 非管理代码和数据 ) 的交互操作性、对开发人员服务的支持等等。使用托管 C++ ,可以让 CLR 来管理代码,并开发具有最新特性如垃圾自动收集、程序间相互访问等的. NET 框架应用程序。

Page 4: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

1.3.4 托管 C++

托管扩展是 Visual C++ 开发系统的新关键字和属性。它们允许开发人员决定哪些类或函数编译为管理或非管理代码。这些部分然后就可以平滑地与其他部分或外部库交互。托管扩展也用于在 C++ 源代码中表示. NET 类型和概念。这就允许开发人员容易地编写.NET 应用程序,而无需编写额外代码。托管扩展有助于提高开发人员使用 Visual C++ 编写. NET 应用程序的效率,并且允许用户将代码从非托管 C++ 中移植到. NET 平台上,可以从. NET Framework 应用程序中使用已有的非托管 C++ 组件,可以从非托管 C++ 中使用. NET Framework 组件,以及在同一应用程序中混合非管理 C++ 代码和‘ NET 代码。C++ 托管扩展为. NET 框架的开发人员提供无可比拟的灵活性。传统的非托管 C++ 和托管 C++ 代码可以在同一个应用程序中自由地混合使用。用托管扩展编写的新应用程序能兼有这两个领域的优点。

Page 5: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

使用托管扩展可以轻松地将现有组件包装为. NET 框架组件,在与. NET 框架集成的同时保留现有代码中的有用价值。由托管概念所引发的 C++ 应用程序包括托管代码、托管数据和托管类三个组成部分。(1) 托管代码:. NET 环境提供了许多核心的运行库 (runtime) 服务,比如异常处理和安全策略。为了能使用这些服务,必须要给运行环境提供一些信息代码 ( 元数据 ) ,这种代码就是托管代码。所有的 C#、 Visual Basic . NET 、 JScript. NET默认时都是托管的,但 Visual C++默认时不是托管的,必须在编译器中使用命令行选项 (/ CLR)才能产生托管代码。

Page 6: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

(2) 托管数据:与托管代码密切相关的是托管数据。托管数据是由公共语言运行的垃圾回收器进行分配和释放的数据。默认情况下,C#、 Visual Basic 和 JScript. NET 数据是托管数据。不过,通过使用特殊的关键字, C#据可以被标记为非托管数据。 Visual C++ 数据在默认情况下是非托管数据,即使在使用/ CLR 开关时也不是托管的。(3) 托管类:尽管 Visual C++ 数据在默认情况下是非托管数据,但是在使用 C++ 的托管扩展时,可以使用“ gc”关键字将类标记为托管类。就像该名称所显示的那样,它表示类实例的内存由垃圾回收器管理。另外,一个托管类也完全可以成为. NET 框架的成员,由此可以带来的好处是,它可以与其他语言编写的类正确地进行相互操作,如托管的 C++ 类可以从 Visual Basic 类继承等。但同时也有一些限制,如托管类只能从一个基类继承等。需要说明的是,在托管 C++ 应用程序中既可使用托管类也可以使用非托管类。这里的非托管类不是指标准 C++ 类,而是使用托管 C++ 语言中的 nogc 关键字的类。

Page 7: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

2.托管 C++ 与标准 C++ 的主要区别尽管托管 C++ 是从标准 C++ 建立而来的,但它与标准 C++有着本质上的区别,这主要体现在以下几个方面:( 1 )广泛采用命名空间 (namespace)命名空间是类型的一种逻辑命名方案,. NET 使用该命名方案用于将类型按相关功能的逻辑类别进行分组,利用命名空间可以使开发人员更容易在代码中浏览和引用类型。当然,也可将命名空间理解成是一个“类库名”。( 2)基本数据类型的变化我们知道,标准 C++ 语言的数据类型是非常丰富的。而托管C++ 的数据类型更加丰富,不仅包含了标准 C++ 中的数据类型,而且新增了 int64(64位整型 ) 、 Decimal(96位十进制数 ) 、 String*( 字符串类型 ) 和 Object*( 对象类型 ) 等类型。

Page 8: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 3 )新增三个托管 C++ 类型: gc Class 、 value class和 gc interface一个 gc 类或结构意味着该类或结构的生命周期是由. NET开发平台自动管理及垃圾自动收集,用户不必自己去调用 delete 来删除。 value 类是用来使用具有短生命朗的小型数据项,它不同于 gc 类。( 4 )简化属性操作在 gc 类中可以使用. NET 的属性,这个属性简化了属性函数的调用操作,这与标准 C++ 中的属性不一样。

Page 9: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 5)托管 C++ 的委派在 C/ C++ 中,一个函数的地址就是内存地址。这个地址不会带有任何其他附加信息,如函数的参数个数、参数类型、函数的返回值类型以及这个函数的调用规范等。总之, C/ C++ 的回调函数不具备类型安全性。而. NET 框架在回调函数的基础增加了提供类型安全的机制,称为委派。总之,使用托管 C++ 是 C++ 程序员编写. NET 框架应用程序最好的一种选择,在充分理解. NET 框架的基础上,托管扩展使得C++ 开发人员可以有针对地使用. NET 框架提供的各种服务,避免使用其他语言如 C#、 VB. NET 所带来的额外开销。 ATL Server 类提供函数的基础结构用以生成快速动态Web 站点和 XML Web Services 。使用 C++ 属性可以尽可能地减少重复冗长的源代码以简化开发。 Visual C++ . NET 2003 的新特性使其能满足应用程序开发的发展。

Page 10: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

1.3.5 Visual C++.NET窗口1 .窗口组成Visual C++.NET 2003 开发环境是平面化的界面,它除了具有和 Windows 窗口一样的标题栏、菜单栏、工具栏和状态栏外,最主要的是还有不一样的窗口区,如图 1-15 所示。窗口区是由工具箱、 Web 浏览区、方案导航区、输出窗口区、属性窗口区以及其他窗口等组成。

Page 11: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

增强的工具箱工具箱在默认情况下处于 Visual C++.NET 窗口 Web 浏览区的左方,如图 1-16 所示。

Page 12: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

使用过 Visual Studio 6.0 的用户可以很容易地了解 Visual C++.NET 的工具箱。其增强的工具箱窗口展示了在Visual C++.NET 的工程中用到的各种工具,包括 Web表单、窗体表单控件、 ActiveX控件、 Web服务、 HTML 元素、对象和文本文件等。该窗体中的可用项目可根据用户正在使用的设计器或编辑器而改变。除了提供对 Web表单、窗体表单和数据开发的新的组件之外,现在代码片段也能在代码窗体中被突出显示,并且能被拖到工具箱上备用。

Page 13: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

Web 浏览窗口是一个多功能的文档窗口,各种程序代码的源文件、资源内容、文档、 Web 页面等都可以通过该窗口显示出来。默认时,该浏览窗口显示的是开始页面。方案导航区方案导航区是由解决方案资源管理器窗口、类视图窗口及资源视图窗口等组成的,用来显示方案中的一些信息,包括类、工程文件、方案项目以及资源等。( 1 )解决方案资源管理器窗口打开方式:         单击“视图”菜单下的“解决方案资源管理器”选项;         按快捷键 Ctrl+Shift+L 。如果这个窗口已经打开,此快捷键可以把此窗口切换到最顶层。

Page 14: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

解决方案资源管理器窗口如图所示。

解决方案资源管理器是用户与工程之间的一个双向的接口。它提供打开的工程的项目的实时信息,同时允许用户管理这些项目。例如,用户可以监控源控文件的当前状态,从一个工程向另一个工程拖放项目,展示解决方案、工程和文件的属性。

Page 15: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 2 )类视图窗口打开方式:         单击“视图”菜单下的“类视图”选项;         按快捷键 Ctrl+Shift+C 。如果这个窗口已经打开,此快捷键可以把此窗口切换到最顶层。类视图窗口如图所示。

这里的类视图与 Visual C++ 6.0 的类视图窗口基本一样,也包含了当前工程中的所有的类以及这些类中的变量、函数,但是 Visual C++.NET 新增加了宏和常量,同时在各个类中新增了其基类的信息和消息信息,这些使得控制工程更加有利。

Page 16: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 3 )资源视图窗口打开方式:         单击“视图”菜单下的“资源视图”选项;         按快捷键 Ctrl+Shift+E 。如果这个窗口已经打开,此快捷键可以把此窗口切换到最顶层。资源视图窗口如图所示。

Page 17: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 4 )服务器资源管理器窗口打开方式:         单击“视图”菜单下的“服务器资源管理器”选项;         按快捷键 Ctrl+Shift+S 。如果这个窗口已经打开,此快捷键可以把此窗口切换到最顶层。服务器资源管理器窗口如图所示。

Page 18: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

服务器资源管理器是 Visual C++.NET 中新展出的一种服务器端开发控制平台,它可以帮助开发人员操作自己拥有访问权限的任何机器上的资源。使用服务器资源管理器,开发人员可以建立到服务器的连接并浏览服务器上的各种资源,包括消息队列、性能评估、服务、进程、事件记录和数据库对象等。此外,服务器资源管理器还可以帮助开发人员在编程时从他们的 Visual C++.NET 应用程序中直接引用服务器组件和资源。最后,服务器资源管理器可以让开发人员直接访问特定服务器上可获取的全部 Web服务。使用服务器资源管理器,开发人员可以查看Web服务的方法和布局的相关信息,并可将这些信息最终应用到自己的应用程序中去。输出窗口区输出窗口区是由任务列表 (Task List)窗口、命令 (Command)窗口、输出 (Output)窗口及查找 (Find)窗口等组成的,用来显示任务、编连信息、查找内容等。

Page 19: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 1 )任务列表窗口打开方式:         单击“视图”菜单下的“其他窗口”子菜单下的“任务列表”选项;         按快捷键 Ctrl+Shift+K 。如果这个窗口已经打开,此快捷键可以把此窗口切换到最顶层。在应用程序的开发任务当中,开发人员除了编写代码、创建组件之外,他们还需要标记他们所写的代码(例如为代码添加注释),这样有利于他们以后对应用程序的维护和修改。为此, Visual C++.NET 为开发人员提供了一个任务列表窗口,如图所示。使用任务列表窗口,开发人员可以为自己编写的应用程序代码添加任意的注释和标记。此外,从任务列表窗口中,开发人员还可以获取应用程序项目的编译 /链接过程中的错误和警告信息。

Page 20: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

属性窗口区属性窗口区是由属性 (Properties) 窗口、动态帮助 (Dynamic help) 窗口及收藏 (Favorites)窗口等组成的,用来显示各种对象的属性、动态的帮助项目以及用户收藏的页面地址。( 1 )属性窗口打开方式:         单击“视图”菜单下的“属性窗口”选项;         按快捷键 F4 。如果这个窗口已经打开,此快捷键可以把此窗口切换到最顶层。属性窗口如图所示。

Page 21: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.3 Visual C++.NET 20031.3 Visual C++.NET 2003 开发环境开发环境 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 2 )动态帮助动态帮助是 Visual C++.NET 为开发人员提供的一项十分有用的功能,其窗口如图所示。

动态帮助窗口为开发人员试图完成的开发任务提供了一次性单击即可获取的快速帮助。不管开发人员处于开发的什么阶段,正在 Visual C++.NET 中使用什么编辑器和设计工具,通过跟踪分析开发人员所作出的选择内容、光标的位置、 IDE 中拥有输入焦点的项目,动态帮助系统就可以自动对 MSDN 中提供的帮助主题进行适当地过滤,并将相关的帮助信息呈现给开发人员。

Page 22: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

本节将介绍如何在 Visual C++.NET 2003 下编写最简单的程序,并选择控制台应用程序作为第一个例子。程序员在开发过程中,总免不了要对代码进行调试,因此本节也将介绍调试的基本知识。现在我们开始编写全书的第一个程序,跟我们以前需要先完成所有的代码书写的程序设计方法不同,首先,可以利用 Visual C++.NET 的可视化编程工具 AppWizard 生成框架,然后根据目标程序的要求,看那些地方需要修改,再往里添写代码。 AppWizard 将可以帮助我们生成大量代码,这种编程方式也许会让人很有成就感。在本实例中,将利用 MFC 应用程序向导创建一个单文档应用程序,在单文档的窗口中将显示一行字:“ Hello World” 。用户将学会如何用 MFC 应用程序向导创建一个基本应用程序所需的步骤,同时也学习如何在单文档的视图中显示文字。

Page 23: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

1 .使用 MFC 应用程序向导生成应用程序框架操作步骤:( 1 )启动 Visual Studio.NET 2003 ,进入带有起始页的界面。( 2)在 Visual Studio . NET 2003 的开发环境中,单击“起始页”中的“项目”选项卡中的“新建项目”按钮,或者选择“文件”菜单下的“新建”子菜单中的“新建项目”选项,弹出“新建项目”对话框,新建一个 Visual C++ 项目,选用 MFC 应用程序模板,项目名称为“ HelloWorld” 。单击“确定”按钮,进入 MFC应用程序向导界面。

Page 24: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

说明: Visual C++.NET 提供了各种应用程序的模板,通过使用这些模板来创建应用程序,将会大大简化界面编程的工作,使程序员能够将精力放在提高程序的功能上,而无需花费过多的时间来组织界面。通过应用程序的模板来创建应用程序是 Visual C++.NET 的一大特色,常用的应用程序模板有: MFC 应用程序模板、 Win32 项目模板和托管 C++ 应用程序模板等。 ( 3 )在 MFC 应用程序向导中的“应用程序类型”选项中,应用程序类型选择“单文档”,其余选项采用默认设置,如下图所示。

Page 25: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

说明: MFC 应用程序向导可以创建以下三种类型的应用程序结构。 单文档界面( SDI )一次只允许打开一个文档。 多文档界面( MDI )允许同时打开多个文档。例如, Microsoft Word 和 Excel 就是典型的 MDI 应用程序。 基于对话框的应用程序不支持文档 / 视图结构,而是仅仅显示一个简单的对话框。这对小的应用程序是很方便的,但如果要用到菜单、工具栏和打印等功能,那么就应该创建基于文档的应用程序。( 4 )接下来单击“复合文档支持”选项,打开的选项对话框询问是否需要复合文档的支持。在本例中,在“复合文档支持”选项组中选中“无”单选按钮,如图所示。

Page 26: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 5 )单击“文档模板字符串”选项,弹出如图 1-30 所示选项面板,在“文件扩展名”文本框中输入一个文件扩展名,如本例中输入的“ hwd” ,其余选项保持默认设置。

Page 27: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 6 )单击“数据库支持”选项,弹出如图所示选项面板。可以设置是否需要数据库支持。由于本例是一个非常简单的显示字符的 MFC 程序,所以不用选择数据库支持,故选中“无”单选按钮即可。

Page 28: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 7 )单击“用户界面功能”选项,可以选择应用程序的界面特征,这里采用默认设置,如图所示。

Page 29: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 8 )单击“高级功能”选项,弹出如图所示选项面板。在该选项面板中可设置项目的一些高级特点。本例中保持默认设置即可。

Page 30: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 9 )单击最后一个选项“生成的类”,弹出如图所示选项面板。在该选项面板中,用户可以设置将要创建的类的属性。本例中,保持默认设置即可。

说明:如果要更改类名和文件名,可以从列表框中选择类,这时类名、基类名、头文件和实现文件都将显示在列表框下面的编辑框中,用户可以根据需要进行修改。( 10 )全部设置完成后,我们再单击“概述”选项,从中可以看到对创建项目所设置的信息。如果设置有误,可以到与设置相应的选项面板中重新设置。如果设置无误,可单击“完成”按钮,则系统自动创建一个名为“ HelloWorld” 的新项目,并为应用程序生成必要的框架文件。

Page 31: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

2.在文件中添加代码并运行程序到目前为止,我们没有写一行代码,可是已经生成了许多行的代码和文件。在解决方案资源管理器窗口中,我们可以看到许多源文件和头文件。如图 1-36 所示。主要的源文件和头文件含义如下。

Page 32: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

首先是两个头文件:“ resource.h”文件和“ stdafx.h”文件。“ resource.h”文件主要是关于资源文件的一些定义,“ stdafx.h”文件和对应的“ stdafx.cpp”文件主要包含了一些预编译信息。在“解决方案资源管理器”中双击“ stdafx.h”文件,可以看到,它上面包含了两条 #include命令。其中一条为“ #include< iostream >”,它的作用将会在后面进行解释。接着来看看三个源文件。“ stdafx.cpp”文件在前面已经介绍了。“ AssemblyInfo.cpp”文件主要包含用于修改程序集元数据的自定义属性,这里可以暂且不管它。最重要的一个文件是“HelloWorld.cpp”文件,它是新建项目 HelloWorld 的主项目文件。双击“源文件”文件夹下的“HelloWorld.cpp”项,将在代码编辑器中看到该文件的内容,如下所示:

Page 33: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

#include “stdafx.h”#using <mscorlib.dll>using namespace System;int_tmain(){ //TODO :请用您自己的代码替换下面的示例代码 Console::WriteLine(s“Hello World”); return 0;}该程序即是整个项目的主程序,整个项目从该程序开始执行。下面逐条解释这个程序:#include“stdafx.h”:预处理命令,它指示在编译时将文件“ stdafx.h”的内容复制到该文件中。

Page 34: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

#using <mscorlib.dll> :导人 MSIL(Microsoft Intermediate Language ,微软中间语言 ) 文件 mscorlib.d11 ,以便处理这个 DLL 文件中所定义的托管数据和托管结构,所有用到托管类型的文件都要有这个语句。这里也可简单的把该语句理解为一个托管程序中的必备语句。using namespace System :该语句使用户可以使用 System命名空间定义的类和数据类型,在本例中,就是指后面的 Console 类。这里的 System 是 Microsoft.NET 系统提供的类库,这在前面已经有了介绍。当然,也可以不写该语句,但是每次使用 Console 类时都要改为 System :: Conso1e 形式。可以想象,当大量使用 System命名空间的类时,使用一条 using 语句比在每个类前加前缀要方便得多。

Page 35: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

Int_tmain() :这是程序的人口点,所有的程序都从这里开始执行,它相当于普通 C/ C++ 程序的 main() 函数。程序从该函数的第一行开始执行,执行完最后一行后程序结束。

Console::WriteLine(s“Hello World”) :该语句用于向屏幕输出字符串“Hello World”,这里用到了 Conso1e 类。 Conso1e 是在命名空间 System 下的一个类,它表示通常打交道的控制台,这里调用其静态方法WriteLine() ,用于向控制台输出一个字符串并换行,还有一个常用的输出函数是 Write() ,它与WriteLine() 的区别是输出完后并不换行。 Conso1e 类还有两个用于输入的常用函数: Read() 与 ReadLine() 。它们的含义可类比前面的两个输出函数。

Return 0 :用于结束程序返回 0值。建立了“HelloWorld”新项目后,通过浏览项目,就可发现向导已经添加了一个最简单的程序所需的所有代码,可以完全不加修改而直接编译运行,从而实现在屏幕上显示“ Hello World”字符串的功能了。下面介绍如何编译运行该程序。

Page 36: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 1 )首先,选择“生成”菜单下的“编译”菜单项,系统将会编译“ HelloWorld.cpp”文件。( 2)接着选择“生成”菜单下的“生成解决方案”或“生成 HelloWorld”菜单项,系统将会完成链接并生成该项目的可执行文件。当然,如果觉得一个个地编译源文件没有必要的话,也可一开始就选择“生成”菜单下的“生成解决方案”菜单项,系统将会同时完成编译和链接,生成该项目的可执行文件。在编译运行程序时,屏幕下方的“输出”窗口将会显示许多的信息,包括编译的状态,是否有错误,编译链接的结果等,有必要留意该窗口以获得更多的信息。如当编译链接顺利完成,生成了可执行文件后,“输出”窗口将会如图所示。

Page 37: 1.3  Visual C++.NET 2003 开发环境

《 《 WindowsWindows 编程编程》》

04/21/2304/21/23民政学院软件学院 蒋国清民政学院软件学院 蒋国清

1.4 1.4 第一个第一个 Visual C++.NETVisual C++.NET 的应用程序的应用程序 第第 11 章 章 Visual C++.netVisual C++.net 简介简介

( 3 )选择“调试”菜单下的“开始执行 ( 不调试 )” 菜单项,即可执行程序。在本程序中,执行界面将如图所示。