在微软的.NET浪潮中,Visual C++是惟一既能编写托管代码,又能编写非托管代码的语言,因此在集成原有代码和新的.NET代码时具有不可替代的作用。本书第一部分介绍Visual C++的新增特性、托管的C++代码、程序集、属性和类库等。第二部分讲述非托管的C++代码、属性化编程、ATL的新功能、ATL Server和ATL Server Web服务等。
什么是.NET?C++有什么变化?它在.NET中的地位和作用如何?曾经是微软组件软件开发核心的COM在.NET到来之后又将扮演什么角色?是否有必要将非托管代码转换为托管代码?又该如何进行转换?您的这些问题都将在本书中找到答案。
本书适用于想了解Visual C++的新功能,以及想在.NET环境中开发C++代码的C++程序员。
第1章 Visual C++的新增功能
1.1 .NET Framework
1.2 Visual Studio.NET的新特性
1.3 跨语言开发与调试
1.4 小结
第2章 托管C++入门
2.1 语言的互操作性
2.2 托管环境
2.3 使用托管扩展
2.4 小结
第3章 程序集
3.1 程序集的概念
3.2 创建程序集
3.3 用ILDasm检验程序集
3.4 共享程序集和私有程序集
3.5 版本化支持
3.6 使用资源
3.7 本地化
3.8 部署程序集
3.9 小结
第4章 属性和反射
4.1 属性
4.2 反射
4.3 组合使用属性和反射
4.4 小结
第5章 .NET Framework实用类
5.1 文本处理
5.2 文件处理
5.3 集合
5.4 线程
5.5 小结
第6章 Windows Forms
6.1 Windows Forms和MFC
6.2 托管C++下的Windows应用程序
6.3 定制窗体并添加事件
6.4 添加子控件
6.5 多文档界面窗体和菜单
6.6 Windows Forms的高级控件
6.7 小结
第7章 托管代码和非托管代码
7.1 混合使用托管代码和非托管代码
7.2 编写托管代理类
7.3 在托管代码和非托管代码之间编组
7.4 小结
第8章 COM互操作性
8.1 从COM到.NET
8.2 对互操作性的需求
8.3 在托管C++中使用COM组件
8.4 在可识别COM的C++应用程序中使用托管C++组件
8.5 小结
第9章 ATL COM编程
9.1 ATL的新增功能
9.2 简单的ATL 7.0项目
9.3 创建属性化项目
9.4 ATL的新类
9.5 实用项目示例
9.6 小结
第10章 介绍ATL Server
10.1 ATL Server的体系结构
10.2 开发简单的ATL Server应用程序
10.3 ATL Server访客登记薄应用程序
10.4 ATL Server的其他功能
10.5 小结
第11章 ATL Server Web服务
11.1 Web服务的益处
11.2 定位服务
11.3 Web服务的ATL Server
11.4 创建Web服务
11.5 股价服务项目
11.6 小结
面对众多对微软.NET计划的评论,如果您开始考虑花时间来学习Visual C++是否是一项明智的投资,那将是勿庸置疑的。Visual C++是Visual Studio的旗舰产品(还记得那张“用Visual C++创造”的宣传画吗?),但在对ASP.NET,Visual Basic.NET,特别是在C#的介绍中几乎没有提及C++。难道这真的意味着C++在Windows下一波的发展浪潮中毫无用武之地吗?在这本书中,我们会证明这种想法并不客观。
首先很重要的一点是,当您应用Visual C++的时候,您不必考虑.NET,甚至Windows编程。无论是在课堂上还是在家里,标准版对于初学标准C++编程的人来说都是很好的选择。在Visual C++.NET中,微软公司进一步改进了它的集成开发环境,并在Visual C++.NET中继续沿用了一直以来采用的ISO/ANSI标准。
其次,COM和ATL都做了较大的革新。ATL库在开发上已经超出了COM编程的范围,它首先在3.0版本中引进了CWindow以及相关的功能,现在这种开发工作还在继续:出现了更多的实用类和ATL Server--为在ISAPI框架上创建优化的Web应用和服务提供的一套全新的类。进一步来讲,COM编程本身也通过引进一些新属性有了新的突破,这些新属性使您不必再管理单独的IDL文件,同时提供了另外的选择使您不必再编写详细而重复的代码。
最后,微软对C++语言本身也作了扩充,使之成为.NET中出色的一员。大多数.NET代码将可能用Visual Basic或C#来编写,还有很多老的代码需要在短期或中期内整合到这些新的应用程序中。Visual C++.NET提供了惟一的方法使遗留代码与新代码相兼容,而且一些新的特性就是以此为目的而开发出来的。
本书概要
这本书非常注重实际:它的目的是告诉有经验的C++程序员他们所需要掌握的关于Visual C++.NET的知识。要做到这一点,就有必要详细讨论.NET Framework本身的知识,但这决不是本书的惟一目的。在本书中,您同时会了解到COM,ATL和Web服务的新特性,以及C++在其中所扮演的角色。
更准确地说,本书的前半部分(第1-6章)将单独讨论.NET内容以及它对C++程序员的重要意义。第1章会简单介绍值得您在应用程序开发中使用的.NET新特性,然后将介绍微软对C++做出的更改,这使我们能访问那些新的特性。了解了一些托管C++的知识后,我们要从C++的角度来学习.NET的一些关键概念,从程序集、属性、元数据开始,最后是作为类库的Framework与MFC及STL的对比分析。
在本书的后半部分(第7-11章),我们将讨论“非托管”的C++。首先要看老的代码如何与为.NET Framework而编写的新代码实现互操作——这是其他任何编程语言都无法实现的。之后,我们还要看看属性驱动的COM编程、ATL(现在是7.0版本)的新特性、ATL Server和ATL的Web服务。如果您要了解微软平台下C++在软件开发中仍能起到的关键作用,本书就是为您而准备的。
客户配置
本书以及其中的代码在已经发布的Microsoft Visual Studio.NET巾做过测试。因而本书要求的最低配置也同样为:PII-450 CPU,Microsoft Windows NT 4.0(或更高版本),至少128MB内存,3GB左右的空闲硬盘空间。书中大部分的例程都能在标准版的VisualC++.NET中运行,但一些说明性的例子用到了VisualBasic.NET和VisualC#.NET。
客户支持和反馈
我们很重视读者的反馈,当然很希望能知道您对本书的看法:哪些是您喜欢的?哪些是您不喜欢的?您认为下次我们如何能做得更好?您可以把意见通过用户回执卡告诉我们,也可以发信到feedback@wrox.com.请您在信中务必告诉我们书名和书号。
源代码和升级
本书所有的源代码都能通过wrox.com Web站点得到。当您打开Web站点http://www.wrox.com/,首先可以通过所提供的搜索引擎和书名列表来找到您要找的书。然后在书的详细页面中单击“Download Code”链接,这样您就能得到书中的所有代码。
您所下载的文件是WinZip的压缩文件。当您把文件存入硬盘后,需要用WinZip或PK Unzip把文件进行解压缩。解压缩的时候,请确保您的软件中“使用文件夹名” 的选项已经打开。
勘误表
我们尽一切努力使本书尽可能准确。然而我们也知道,出错是无法避免的。如果您能在书巾发现错误并及时告诉我们,我们将非常感激。通过给我们指出错误,您能为下一位读者节省时间,而且还能帮助我们为读者提供更高品质的书籍。把您的建议通过E-mail发给我们,您提供的信息会及时得到反馈。如果您的指正是正确的,我们将把它发送到勘误页或在再版的时候作出修正。
如果您想了解别人发现的错误,请登录到http://www.wrox.com,通过搜索引擎找到书名。然后在该书的页面中,单击“Book Errata”链接。在该页中,您能找到已更正过的错误。您也可以通过单击“Submit Errata”链接告诉我们您所发现的错误。
技术支持
如果您需要和一位了解细节的专家讨论书巾的问题,发E-mail到support@wrox.com,在邮件主题中写上书名和书号的后4位。一封典型的E-mail应该包括以下内容:
(1)书名,书号的后4位,出错内容所在的页数,行数。
(2)您的名字,您的联系信息,以及您所发现的问题。
我们不会给您发垃圾邮件。为了节省大家的时间,我们需要知道一些具体细节。当您发出一封E-mail会得到如下支持:
·客户支持:您的信息会转给我们的客户支持人员,他们将是第一个帮助您的人。他们会对您对本书提出的一般性问题或是关于我们Web站点的问题作出迅速的答复。
·编辑:更深层次的问题会被反映到技术编辑那里,他们负责对这些问题作出答复。这些技术人员在某一方面很有经验,能很好解决一些细节问题。问题被解决后,我们会把解决方案公布在Web站点上。
·作者:最后,可能会有一些问题编辑也无法回答,那么他会向作者寻求答案。我们尽力不让作者为一些小的问题分心,但他们和我们一样也都很乐意来处理这些特殊的问题。所有Wrox的作者都会对他们的书提供技术支持。他们会把问题的答案寄给客户和编辑,让所有的读者都能从中受益。
需要说明的是,Wrox能提供的技术支持仅限于我们出版的书。如果您的问题超出一般范围,您可以通过http://p2p.wrox.com的公共社区来寻找答案。
p2p.wrox.com
如果您想和作者及同行进行讨论,请加入P2P邮件列表。我们独一无二的系统除了能为您提供一对一的E-mail支持外,还能通过邮件列表、论坛、新闻组使您实现与程序员之间的联系。请放心,您的问题会得到很多Wrox作者还有其他行业专家的帮助。在p2p.wrox.com, 您能看到许多不同的列表,无论您是正在阅读本书,还是在开发自己的应用程序,这些信息都会对您有所帮助。
如果您想订阅邮件列表,仅需采取如下步骤:
(1)登录到http://p2p.wrox.com。
(2)从左边的菜单里选择合适的类别。
(3)单击您想加入的邮件列表。
(4)按照订阅的提示,填入您的E-mail地址和密码。
(5)回复您收到的确认邮件。
(6)使用订阅管理器加入更多的列表,然后设置邮件的选项