《《Visual C++NET程序设计教程与上机指导》第13章C++.ppt》由会员分享,可在线阅读,更多相关《《Visual C++NET程序设计教程与上机指导》第13章C++.ppt(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第13章章 C+托管扩展编程托管扩展编程 教学提示:在本章中主要介绍什么是托管教学提示:在本章中主要介绍什么是托管C+、利用、利用C+托管开托管开发发.NET Framework(框架框架)的项目类型以及其与标准的项目类型以及其与标准C+之间的区别。之间的区别。教学目标:通过本章的学习,掌握托管教学目标:通过本章的学习,掌握托管C+的基本概念,熟悉利的基本概念,熟悉利用用C+托管开发托管开发.NET Framework(框架框架)的项目及内容,了解如何为已的项目及内容,了解如何为已有的应用程序添加有的应用程序添加C+托管扩展。托管扩展。13.1 何时使用何时使用C+托管扩展托管扩展 C+托管
2、扩展是一组帮助托管扩展是一组帮助Visual C+开发人员编写开发人员编写.NET框架应用程框架应用程序的序的C+语言扩展。托管扩展允许在同一个应用程序中混合使用传统的语言扩展。托管扩展允许在同一个应用程序中混合使用传统的非托管非托管C+代码与托管代码与托管C+代码。代码。托管扩展是下列开发方案的最佳选择:托管扩展是下列开发方案的最佳选择:将非托管将非托管C+应用程序快速移植到应用程序快速移植到.NET框架框架通过与通过与.NET框架兼容的语言来访问框架兼容的语言来访问C+组件组件通过非托管代码访问通过非托管代码访问.NET框架类框架类托管和非托管代码在一个可执行文件中托管和非托管代码在一个可
3、执行文件中13.2 托管托管C+中的项目及内容中的项目及内容 Visual Studio.NET为创建为创建4种种C+托管扩展项目类型提供了相应的托管扩展项目类型提供了相应的模板,如模板,如表表13.1所示。可以通过所示。可以通过Visual studio中的中的【新建项目新建项目】对话框对话框来使用这些模板。来使用这些模板。表表13.1 托管托管C+项目类型项目类型项目类型模板说 明ASP.NET Web 服务创建使用C+托管扩展的XML Web服务。XML Web 服务项目使用Internet 标准提供对应用程序逻辑的编程访问。应用程序按照与面向组件的软件相似的方式访问XML Web 服务
4、在默认情况下,所创建的项目是一个DLL,它与CRT、ATL或MFC等本机库没有任何链接关系,也没有任何静态变量类库(.NET)创建具有托管扩展支持的C+DLL。用来创建供其他.NET Framework 应用程序使用的托管组件 在默认情况下,所创建的项目是一个DLL,它与CRT、ATL或MFC等本机库没有任何链接关系,也没有任何静态变量控制台应用程序(.NET)创建使用托管扩展的控制台应用程序。在默认情况下,所创建的项目是一个EXE,由于该项目与CRT库之间建立了链接,所以它在默认情况下会包含混合模式的代码Windows 控件库(.NET)使用托管扩展为Windows 控件库创建一个项目在默认
5、情况下,所创建的项目是一个DLL,它与CRT、ATL或MFC等本机库没有任何链接关系,也没有任何静态变量Windows窗体应用程序(.NET)使用托管扩展为带有Windows 用户界面的应用程序创建一个项目。在默认情况下,所创建的项目是一个EXE,由于该项目与CRT库之间建立了链接,所以它在默认情况下会包含混合模式的代码Windows服务(.NET)使用托管扩展创建一个Windows服务项目。在默认情况下,所创建的项目是一个EXE,由于该项目与CRT库之间建立了链接,所以它在默认情况下会包含混合模式的代码空项目(.NET)创建具有支持托管扩展的适当编译器和链接器选项的空项目。用该项目向托管环境
6、移植现有的C+源文件在默认情况下,所创建的项目是一个EXE,由于该项目与 CRT库之间建立了链接,所以它在默认情况下会包含混合模式的代码返回13.3 托托 管管 类类 型型 托管类型提供对公共语言运行库功能的支持,并受运行库的优势托管类型提供对公共语言运行库功能的支持,并受运行库的优势和限制的影响。本节讨论托管类型的两个基础类别:和限制的影响。本节讨论托管类型的两个基础类别:GC类型类型值类型值类型13.3.1 GC类型类型13.3.2 值类型值类型13.3.3 class和和struct关键字关键字13.3.1 GC类型类型 C+托管扩展是一组帮助托管扩展是一组帮助Visual C+开发人员
7、编写开发人员编写.NET框架应用程框架应用程序的序的C+语言扩展。托管扩展允许在同一个应用程序中混合使用传统的语言扩展。托管扩展允许在同一个应用程序中混合使用传统的非托管非托管C+代码与托管代码与托管C+代码。代码。托管扩展是下列开发方案的最佳选择:托管扩展是下列开发方案的最佳选择:将非托管将非托管C+应用程序快速移植到应用程序快速移植到.NET框架框架通过与通过与.NET框架兼容的语言来访问框架兼容的语言来访问C+组件组件通过非托管代码访问通过非托管代码访问.NET框架类框架类托管和非托管代码在一个可执行文件中托管和非托管代码在一个可执行文件中返回13.3.2 值类型值类型 Visual S
8、tudio.NET为创建为创建4种种C+托管扩展项目类型提供了相应的托管扩展项目类型提供了相应的模板,如表模板,如表13.1所示。可以通过所示。可以通过Visual studio中的中的【新建项目新建项目】对话框对话框来使用这些模板。来使用这些模板。返回13.3.3 class和和struct关键字关键字 Visual Studio.NET为创建为创建4种种C+托管扩展项目类型提供了相应的托管扩展项目类型提供了相应的模板,如表模板,如表13.1所示。可以通过所示。可以通过Visual studio中的中的【新建项目新建项目】对话框对话框来使用这些模板。来使用这些模板。返回13.4 为现有应用程
9、序添加为现有应用程序添加C+托管扩展托管扩展 将现有将现有C+应用程序转换为托管扩展应用程序包括以下两个内容。应用程序转换为托管扩展应用程序包括以下两个内容。1.修改现有项目设置修改现有项目设置2.在现有应用程序中使用新的托管扩展功能在现有应用程序中使用新的托管扩展功能13.5 异异 常常 处处 理理 在在C+托管扩展中,既可以使用托管扩展中,既可以使用C+异常处理,又可以使用托管异常处理,又可以使用托管异常处理。托管扩展通过支持托管异常处理,扩展了本机异常处理。异常处理。托管扩展通过支持托管异常处理,扩展了本机异常处理。托管异常是托管类型引发的任何异常。托管异常是托管类型引发的任何异常。Sy
10、stem:Exception类提供了许类提供了许多有用的方法来处理托管异常,建议将该类作为用户定义异常类的基多有用的方法来处理托管异常,建议将该类作为用户定义异常类的基类。类。13.6 上上 机机 指指 导导 本章讲解了本章讲解了C+托管扩展编程的基本概念和方法。在本次的上机指托管扩展编程的基本概念和方法。在本次的上机指导中,我们将针对本章的内容进行实际上机练习。其主要内容为支持托导中,我们将针对本章的内容进行实际上机练习。其主要内容为支持托管扩展的独立管扩展的独立C+应用程序的创建。应用程序的创建。在本节,我们将练习创建支持托管扩展的独立在本节,我们将练习创建支持托管扩展的独立C+应用程序。具应用程序。具体的例子为编写一个体的例子为编写一个MDI应用程序,用户可以在应用程序的窗体中创应用程序,用户可以在应用程序的窗体中创建子窗口,并可以对这些子窗口进行上下平铺等操作。建子窗口,并可以对这些子窗口进行上下平铺等操作。