首页>参考读物>计算机科学与技术>软件与程序设计

Visual C++ 程序设计:VB 程序员指南
作者 : (美)Bill Locke
译者 : 肖国尊 王琦 郭卫峰 等
出版日期 : 2002-10-01
ISBN : 7-111-10950-3
定价 : 39.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 300
开本 : 16开
原书名 : Visual C++ for Visual Basic Developers
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书是为要掌握C语言的VB程序员编写的。全书首先介绍了VB和C语言的历史和异同点,然后分章介绍了C语言和C++基础、C++类、C++和Windows、C DLL、组件与控件以及C#。作者在介绍每一项内容时,都与VB进行了一一比较。另外,作者还对两种语言之间的互操作进行了介绍。
本书适合于要学习C语言的VB程序员,以及那些希望了解两种语言区别的开发人员。

图书前言

本书是为中级到高级Visual Basic程序员编写的。本书不是为高级C和C++程序员编写的,但是中级C程序员可以从本书中受益。许多章对于不知道Visual Basic的人会觉得单调乏味,因为本书将重点对照Visual Basic代码。
我想问Visual Basic程序员一个简单的问题:你想要用C、C++或者C#编程吗?这些语言是否列入你希望掌握的语言工具之中?回答这个问题可能比你预料的要难。
为什么应当关心这些语言呢?简短的回答就是:对于希望自由自在编程的程序员而言,C语言系列是他们的最佳选择。你可以考虑在编程过程中希望做的任何事情,而使用C、C++和C#总可以找到完成这些任务的途径。只有很少的语言系列可以满足这样的要求。假如是那样,那么C语言是否是你愿意了解的语言呢?
较长的回答与Basic和C的发展有关系。在过去,Visual Basic在设计用户界面时具有明显的优势。在Visual Basic中设计用户界面比在C或C++中设计用户界面要简单得多。现在,C#和Visual Basic(以及许多其他语言(就此而言))使用相同的设计器并共享相同的用户界面设计功能。在本书中VB的这些优点都没有了。
Visual Basic具有其他性质,这些性质使得它较容易开发和使用最终用户程序,对于无经验的程序员而言尤其如此。这些优点也没有了。Visual Basic的最新版本比以前版本要复杂一个等级并且很难掌握。从Visual Basic 6迁移到最新的Visual Basic语言可能同从Visual Basic迁移到C#一样难。
微软说,现在选择一种语言就是选择一种生活方式。我想语言的选择包含更多的含意。C(或者由C派生过来的语言)一直是微软的内部开发语言。首先是C,然后是C++,现在是C#,这些语言在微软广泛使用。这对于语言有何影响呢?其影响效果是你可能预料到的。如果微软程序员需要C、C++或C#中的某种特性来完成工作,那么一般情况下他可以获得这个特性。那么,现在,你要面对的是C#比Visual Basic要强的场合,但因为设计器的缘故,C#一样容易使用。
例如,C#可以用来编写难于管理的代码,而Visual Basic则不能;C#可以覆盖操作符,而Visual Basic不能。C#可以直接访问内存,而Visual Basic不能。我们可以继续研究这些方面的内容,但我想要讲的是:微软使用C#作为.NET技术中的首要开发语言。
我是在劝你现在就转到C#吗?不,我在劝你学习一种已经处于这个领域顶层许多年的语言。本书将着重于组件以及Visual Basic与C之间的差别。我将向你展示如何编写例程和对象,你可以使用这些例程和对象来提高Visual Basic技能。同时,本书中提供了足够的信息,你可以根据需要彻底转到C#。我的主要观点依旧是:你希望知道这些语言的足够信息来提高Visual Basic技能。如果你决定转到C系列,那么这是开始转换的好途径。
下面介绍本书的主要内容:
第1章:“历史回顾”—本章讲述简短的VB和C++的历史课程。如果你从一开始使用的就是Visual Basic,那么这一章可以作为复习用。然而,我想,从这一章可以很好地看出“你是从哪里来的”,这样就可以更好地明白“要往哪里去”。
第2章:“C语言基础”—该章讨论基本C(不存在C++扩展的C语言)。C语言的构成和C与Basic之间的差异。该章将使用示例来示范这种差异。该章是C++和C#二者的基础,因为这两种语言是建立在C概念的基础之上的。
第3章:“C编程”—这一章继续讨论基本C编程。该章为理解C和C++中的变量类型打下基础。还介绍了C中的常见程序设计结构,如判定和循环。
第4章:“C++基础”—该章讨论C++并讨论C同C++之间的基本不同点。C++编译器对该语言增加了不必直接与类相关的特性。我们将介绍这些变化并使你对于理解C++类有准备。
第5章:“C++类”—该章着重介绍C++类。C++类是程序员对实现继承入门的最常见的路线,并且我们将花一点点时间来理解实现继承。继承是你使用C++或者C#技术编程时希望理解的一个概念。
第6章:“C++和Windows”—该章简介WIN32程序中的底层组件并且包含示例C代码,这些示例代码显示如何与这些组件进行交互。如果你想使用C或C++在WIN32中做大量的工作,那么应当充分掌握这些基础知识。
第7章:“C DLL”—该章将介绍较为老但仍然有用的技术—基于函数的DLL。更为新式的技术依赖的许多特性可在简单DLL中实现,你将学习如何编写它们。该章还介绍了Visual Basic与C之间的基本类型转换。
第8章:“C DLL示例”—该章包含第7章的示例。它包括派生类和回调的示例。它还讨论关于使用一个类型库来简化对DLL的访问。
第9章:“组件和控件”—该章简要介绍使用不同的技术创建组件。该章讨论COM技术与.NET技术之间的差别。然后,深入介绍控件技术。它详细讲述了ActiveX控件开发。
第10章:“C#基础”—该章将引导你了解Microsoft提供的大多数新式语言之间的差别。我们将讨论C#的基础。C#从下到上都是为.NET技术设计的,并且有可能成为首要的MS开发语言。
第11章:“应用C#”—在最后这一章中,你将深入了解C#并使用C#建立组件。我们将示范C#与前面的开发语言之间的实际差别。
如果你一直都在考虑使用C编程,那么现在是开始的时候了。从Visual Basic转到.NET技术存在一定的难度,但可以扩展你的语言选择。

作者简介

(美)Bill Locke:暂无简介

译者简介

肖国尊 王琦 郭卫峰 等:暂无简介

译者序

Basic是一种拥有悠久历史的计算机程序设计语言,早在DOS时代,就有了一大批在计算机上使用Basic进行程序设计的程序员。但是,不管怎么样,Basic对程序员而言,总不是十分“专业”的语言,我们很难使用Basic来做一些底层的开发工作。而C语言就完全不同,我们既可以随心所欲地进行界面设计,又能以一种便捷的方式操作内存和硬件。随着Windows的推广,C语言基本上成了一种标准语言。
尽管Visual Basic的推出,改变了很多人对Basic的看法,用它生成用户界面非常简单,而且其在界面后面放置代码的方法也非常的简易,可能除了那些在.NET中能被管理的代码,现在还没有哪个工具能跟它比。但是Visual Basic还是只能编写一些简单的程序。
因此,对VB程序员而言,要学习C语言就存在一个语言和开发平台的转型问题,从基本的标识符、关键字、操作符、表达式、语言控制流程到使用面向对象编程和开发动态链接库,VB程序员似乎一切都要从头开始学习。
其实,语言与语言之间有很多东西是相通的,虽然各种语言的侧重点不同,但大多数的功能总是相互对应的。只要我们使用了好的学习工具,从一种语言转向另一种语言并不难。而本书的目标就是以一种一一对应的方法带领VB程序员掌握C(包括基本C、C++和C#),只要按照本书逐步学习,相信读者能够很快掌握C。
本书由肖国尊负责组织翻译,参加翻译工作的人员除封面署名外还有郭卫锋、柳林、李化、周玉梅、陈芝生、陈彦海、胡艳玲、丁滟、李满朝、左亚利、孙文明、廖建华等。全书最后由肖国尊统稿。
在翻译过程中,我们对本书中出现的术语都进行了仔细的推敲和研究,然而有些内容在我们的开发工作中也很少遇到,加上时间仓促,译者水平有限,疏漏和争议之处在所难免,望广大读者提出宝贵的意见。


肖国尊
2002年6月

图书目录

第1章  历史回顾 1
1.1  Visual Basic和C++的历史 2
1.1.1  16位 2
1.1.2  32位 6
1.1.3  .NET 7
1.2  Visual Basic的作用 8
1.2.1  Visual Basic的优点 8
1.2.2  Visual Basic的缺点 9
1.3  C++的作用 10
1.3.1  C++的优点 10
1.3.2  C++的缺点 11
1.4  C# 11
第2章  C语言基础 12
2.1  标记与元素 12
2.1.1  关键字 13
2.1.2  标识符 14
2.1.3  常量 15
2.1.4  文字 17
2.1.5  预定义常量和宏 19
2.2  结构 20
2.2.1  指令 20
2.2.2  代码结构 26
2.2.3  生存期 27
2.2.4  作用域和可见性 27
2.3  函数 28
2.3.1  原型 29
2.3.2  定义 29
2.3.3  调用函数 30
2.3.4  main、wmain、DllMain 30
2.3.5  函数指针 31
2.4  小结 32
第3章  C编程 33
3.1  变量和数据 33
3.1.1  类型说明符和限定符 33
3.1.2  变量和声明 34
3.1.3  初始化 43
3.2  表达式 45
3.2.1  操作符和优先级 45
3.2.2  优先级 47
3.2.3  转换和类型转换 48
3.3  语句 52
3.3.1  赋值 52
3.3.2  控制和流程 52
3.3.3  循环 55
3.4  小结 57
第4章  C++基础 58
4.1  标记与元素 58
4.1.1  C++关键字 58
4.1.2  标识符 60
4.1.3  常量与文字 60
4.2  结构 61
4.2.1  指令 61
4.2.2  作用域、可见性和生存期 63
4.2.3  链接 63
4.3  函数 63
4.3.1  原型 64
4.3.2  可变数目的参数 64
4.3.3  重载 64
4.4  变量和数据 65
4.4.1  运行时类型信息 65
4.4.2  C++定义和声明 66
4.4.3  变量和声明 68
4.4.4  名字空间 69
4.5  表达式 71
4.5.1  操作符 71
4.5.2  类型转换 74
4.6  语句 75
4.6.1  错误处理 75
4.6.2  C++异常处理 75
4.6.3  结构化异常处理 77
4.7  小结 77
第5章  C++类 78
5.1  类 78
5.1.1  面向对象编程概念 78
5.1.2  类基础 79
5.1.3  名称 80
5.1.4  类成员 81
5.1.5  成员变量 81
5.1.6  成员函数 81
5.1.7  成员访问控制 90
5.1.8  友元函数 91
5.2  派生类 91
5.2.1  基础 91
5.2.2  多个基类 95
5.2.3  使用声明 99
5.2.4  抽象类 101
5.3  小结 101
第6章  C++和Windows 102
6.1  Windows系统工作原理 102
6.1.1  进程和线程 102
6.1.2  消息子系统 103
6.2  Windows程序工作原理 106
6.2.1  窗口类 106
6.2.2  创建主窗口 106
6.2.3  基服务 106
6.2.4  GDI 114
6.3  小结 118
第7章  C DLL 119
7.1  创建简单的C DLL教程 119
7.1.1  使用Visual C++创建DLL 119
7.1.2  从C中导出函数 120
7.1.3  建立函数原型 122
7.1.4  编写函数 123
7.1.5  从C++环境启动Visual Basic 124
7.1.6  声明并使用Visual Basic函数 126
7.1.7  调试C++代码 128
7.1.8  教程小结 129
7.2  传递数值型变量 129
7.2.1  4字节整数(长整型) 129
7.2.2  2字节整数(整型) 131
7.2.3  4字节实数(单精度型) 131
7.2.4  8字节实数(双精度型) 131
7.2.5  布尔型 132
7.2.6  货币型 132
7.3  使用字符串 132
7.3.1  传递C字符串(ByVal) 133
7.3.2  处理BSTR 133
7.3.3  传递字节数组 135
7.4  传递和使用结构(UDT) 136
7.5  传递和使用变体 139
7.6  传递和使用数组 140
7.7  Unicode和ANSI 142
7.8  小结 143
第8章  C DLL示例 144
8.1  类型库与DLL 144
8.1.1  建立一个包含类型库信息的DLL
的教程 144
8.1.2  IDL文件的一些更好的特点 148
8.2  向DLL中添加资源 149
8.3  C DLL示例 150
8.3.1  子类化 150
8.3.2  InstallShield的支持 154
8.3.3  扩展存储过程 155
8.3.4  回调、hook和其他 161
8.4  小结 164
第9章  组件和控件 165
9.1  组件基础 165
9.2  组件和继承 166
9.2.1  继承的定义 166
9.2.2  抽象 166
9.2.3  封装 166
9.2.4  多态性 166
9.2.5  继承 167
9.2.6  委托 168
9.2.7  聚合 168
9.3  COM 169
9.4  定制控件 173
9.5  建立控件的方法 174
9.5.1  Visual Basic 5和Visual Basic 6 174
9.5.2  MFC 174
9.5.3  Visual Studio.NET 175
9.6  ATL控件细节 175
9.6.1  建立控件项目 175
9.6.2  添加属性 182
9.6.3  添加方法 187
9.6.4  实现事件 188
9.6.5  Windows消息映射 189
9.6.6  处理鼠标 190
9.6.7  处理键盘 195
9.6.8  属性页 197
9.6.9  适当的属性持久性 201
9.6.10  枚举的属性 204
9.6.11  将属性归类 209
9.6.12  返回错误 211
9.6.13  初始化和脚本编写的安全性 211
9.6.14  许可 212
9.6.15  ISimpleFrame 213
9.7  基于Windows控件的控件 216
9.8  组合控件 218
第10章 C#基础 221
10.1  C#类型系统 221
10.1.1  值类型的实际运用 222
10.1.2  引用类型 225
10.1.3  装箱与拆箱 226
10.2  程序设计概念 227
10.2.1  名字空间 227
10.2.2  语句 230
10.2.3  操作符 233
10.3  数组 235
10.4  Struct 237
10.5  类 239
10.5.1  对象 241
10.5.2  方法 241
10.5.3  属性 245
10.5.4  操作符 246
10.5.5  继承 251
10.6  接口 253
10.7  委托 255
10.8  小结 255
第11章  应用C# 256
11.1  C# WinForm控件 256
11.1.1  建立控件项目 256
11.1.2  对控件进行编码 257
11.2  控件元素 267
11.2.1  名字空间 267
11.2.2  属性和方法 268
11.2.3  事件 271
11.2.4  设计时支持 274
11.2.5  绘图 279
11.3  小结 281
附录A  术语定义 282
附录B  字符码表 285
附录C  C/C++关键字 289

教学资源推荐
作者: [英]克里斯?布里顿(Chris Britton) 著
作者: (美)Dennis Kafura
作者: 刘艺
作者: [美]艾伦 A. A. 多诺万(Alan A. A. Donovan)布莱恩 W. 柯尼汉(Brian W. Kernighan)著
参考读物推荐
作者: [美]乔史·戴昆(Josh Diakun) 保罗R.约翰逊(Paul R Johnson) 德莱克·默克(Derek Mock)著
作者: 深圳中科呼图信息技术有限公司 编著
作者: (美)Chris Radcliff
作者: [美]克林顿·L.杰弗瑞(Clinton L. Jeffery) 著