2.5.7 使用C++(www.cppentry.com)/CLI
前面提及,C++(www.cppentry.com)/CLI的目标是把C++(www.cppentry.com)带到CLI平台上,使C++(www.cppentry.com)能够在CLI平台上发挥最大的能力。通过C++(www.cppentry.com)/CLI中的标准扩展,C++(www.cppentry.com)具有了原来没有的动态编程(www.cppentry.com)能力及一系列的first class(一等公民)的.NET特性。
读者有时会发现术语CLI和CLR可交换使用,实际上这两者之间的区别在于:CLI是一种标准规范,而CLR却是微软对CLI的实现。当我们使用C++(www.cppentry.com)/CLI时,就可以通过CLI接口与CLR通信,而CLR相当于建立在操作系统之上的一个虚拟层。它们之间的调用关系如图2-56所示。
|
| 图2-56 使用C++(www.cppentry.com)/CLI开发应用程序 |
现在动手
接下来,我们使用C++(www.cppentry.com)/CLI来操作文件并输出茴字。
【程序 2-17】使用C++(www.cppentry.com)/CLI输出茴字
- 01 #include "stdafx.h"
- 02
- 03 using namespace System;
- 04 using namespace System::IO;
- 05
- 06 int main(array<System::String ^> ^args)
- 07 {
- 08 String^ path = "test.out";
- 09
- 10
- 11 StreamWriter^ sw = File::CreateText(path);
- 12 sw->WriteLine("茴香豆的茴");
- 13 sw->Close();
- 14
- 15
- 16 StreamReader^ sr = File::OpenText(path);
- 17 String^ s = "";
- 18 if (s = sr->ReadLine())
- 19 {
- 20 Console::WriteLine(s);
- 21 }22 }
简直太简洁了,不是吗?与本例子相关的.NET Framework 类包括如下。
Console:对应于控制台输出。
File:文件类,与CFile相似。
StreamWriter:流的写入器。
StreamReader:流的读取器。
光盘导读
该项目对应于光盘中的目录"\ch02\ ClrWriter"。
【责任编辑:
云霞 TEL:(010)68476606】