言编写的程序很难与使用另一种高级语言编写的程 序进行数据交换,这是许多编程语言存在的一个共同问题。为此,CLI 定义了一组通用的数 据类型——CTS(Common Type System,通用类型系统) ,在使用由 CLI 实现的编程语言编 写程序时都应该使用该类型系统。这样,CLI 中的各种高级语言都会使用相同的数据类型系 统,从而使得不同编程语言编写的组件以相同的方式处理数据,也可以使得将不同语言编写 的组件集成到单个应用程序中。 CLR 大大增强了数据的安全性和程序的可靠性。因为在 CLR 中运行的程序是托管的, 即 CLR 管理着应用程序,它会对程序的内存进行管理,并对程序执行的安全性进行检查等。 与此相反, 不在 CLR 控制下运行应用程序是非托管的。 非托管
程序可以直接访问操作
系统的 低级功能,对于托管程序则是通过 CLR 与操作系统通信。
1.1.3
.NET Framework 类库
关于类库的概念一直就存在,以前的 Visual C++为 MFC 类库,
Delphi 的类库为 VCL, Java 的类库为 Swing、 AWT 等。 .
NET 这些类库封装了系统底层的功能并提供更好的操作方式。 Framework 中的类库封装了对 Windows、
网络、文件、多媒体的处理功能,是所有.NET Framework 语言都必须使用的核心类库。并且,为了便于语言之间进行交互操作,.NET Framework 类库中的类型都是符合公共类型系统 CLS 的。使用类库可以创建多种类型的应用 程序,极大简化了开发人员的学习曲线,提高了
软件开发生产力。
1.1.4
.NET Framework 3.5 的新功能
第
从微软公司发布
第一个.NET Framework 以来,已经陆续发布了 1.0 版、1.1 版、2.0 版和 3.0 版。.NET Framework 3.2 版是目前最新的版本,也是功能最强大和完美的一个版本。开发 人员可以使用.NET Framework 创建 Web 程序、Windows 以及智能设备应用程序等。 Visual C++ 2008 所使用的.NET Framework 为 3.5 版。.NET Framework 3.5 版是以.NET Framework 2.0 版和.NET Framework 3.0 版为基础的,包括.NET Framework 2.0 和 3.0 版的 Service Pack。 .NET Framework 2.0 改进了.NET Framework 1.1 中的许多
问题,并增加了如泛型、可空 类型、匿名方法等新特性。.NET Framework 3.0 则以.NET Framework 2.0 为基础,增加了 3 种全新的技术。 Windows Presentation Foundation(WPF) Windows 表现层技术。 WCF Windows
通信技术。 WF Windows
工作流开发技术。 .NET Framework3.5 则以 3.0 为基础,增加了对 ASP.NET AJAX 的直接支持,并提供了语 言集成
查询 LINQ 技术以及一些附加的类库。
1 章
开 始 使 用
Visual C++ 2008
1.2
C++应用程序
使用 Visual C++ 2008 可以开发两种类型的应用程序,即在 CLR 中执行的托管程序,也 可以编写直接编译为机器代码的非托管程序。 就针对 CLR 的、 基于窗口的托管应用程序而言, 可以使用.NET Framework 类库提供的 Windows Forms 作为 GUI 基础。使用 Windows Forms 可以快速开发 GUI 程序,因为 Visual C++ 2008 开发环境提供了直观的组件来开发 GUI,而 代码是完全自动生成的。 对于本地执行的非托管代码, 则有多种方式可用。 一种是使用 MFC (Microsoft Foundation Classses,微软基本类)来编写 Windows 应用程序的图形界面。MFC 封装了 Windows 操作系 统提供的用于创建 Windows 应用程序的 API (Application Programming Interface, 应用程序编 程接口)因此大大简化了程序的开发过程。 , 如果应用程序需要最佳性能, 还直接使用 Windows API 开发 Windows 应用程序。 由于托管 C++是在 CLR 中执行的,其数据和代码都由 CLR 管理,所以在其中为数据动
3
态分配的内存是自动释放的, 这就消除了本地 C++应用程序中常见的错误。 对于非托管的 C++ 程序, 因为 CLR 不参与这种代码的执行过程, 因此程序员必须自己处理程序执行过程中分配 与释放内存的各个方面。另外,还得不到 CLR 提供的安全性检