本书是微软Visual Studio的资深专家Matthew Curland多年VB开发经验的总结,着重于解决VB程序员编程时所遇到的困难。由浅入深、循序渐进地讲解了如何开发标准的VB代码、高级编程技巧、以及如何通过一些新算法的使用提高编码效率和性能。附带的光盘提供了书中内容的相关代码,稍加扩展即可获得用户自定义类型、轻量对象系统、创建定制窗口以及函数重载功能。盘中还提供了三个功能强大的类型库,对VB中使用的和由VB产生的类型库进行了修正。
本书适合高级程序员阅读,也可供专业计算机人士参考。
第一章 构建块\r\n\r\n 1.1 虚指针\r\n 1.2 活指针\r\n 1.3 VBoost对象\r\n\r\n第二章 使用数组\r\n\r\n 2.1 数组描述符\r\n 2.2 读取数组变量\r\n 2.3 写入到数组变量\r\n 2.4 数组选项:超出固定或可变字长\r\n 2.5 使用数组的一些小提示\r\n\r\n第三章 IUnknown接口:一个未知量\r\n\r\n 3.1 VB和IUnknown接口\r\n 3.2 声明IUnknown并调用它的函数\r\n\r\n第四章 绑定函数到对象上\r\n\r\n 4.1 何时绑定对象\r\n 4.2 运行时间的名字绑定\r\n 4.3 VTable绑定用户定制控件接口\r\n\r\n第五章 对象的设计结构\r\n\r\n 5.1 使用Implements来实现抽象\r\n 5.2 调用代码的可插入性\r\n 5.3 实现和实现重用\r\n 5.4 聚合\r\n 5.5 聚台现存的对象\r\n\r\n第六章 循环引用\r\n\r\n 6.1 中间对象解决方案\r\n 6.2 弱引用和集合\r\n 6.3 转移对象所有权\r\n 6.4 层次化对象模型\r\n\r\n第六章 外部对象的创建\r\n\r\n 7.1 使用类工厂进行对象的创建\r\n 7.2 直接加载DLL对象\r\n 7.3 自定义加载定制化控件\r\n 7.4 定制类对象\r\n\r\n第八章 轻量COM对象\r\n\r\n 8.1 关于轻量的基础知识\r\n 8.2 结构终止代码\r\n 8.3 LastIID的轻量版本\r\n 8.4 ArrayOwner的轻量版本\r\n 8.5 接口位于何处\r\n 8.6 错误的产生及避免\r\n 8.7 从轻量对象返回错误\r\n 8.8 聚合轻量对象\r\n 8.9 编制Query lnterface函数\r\n\r\n第九章 大型多对象系统\r\n\r\n 9.1 使用定长内存管理器\r\n 9.2 Scribble示例\r\n\r\n第十章 VB对象和运行对象表\r\n\r\n 10.1 在ROT中注册VB对象\r\n 10.2 ROTHook实现细节\r\n\r\n第十一章 函数指针的调用\r\n\r\n 11.1 示例:调用DLLRegister Server\r\n 11.2 示例:QuickSort,一劳永逸\r\n 11.3 Alpha中的VB函数指针\r\n 11.4 堆栈分配\r\n 11.5 产生自己的内联汇编\r\n 11.6 类函数指针\r\n 11.7 使用CDECL函数\r\n\r\n第十二章 重载函数\r\n\r\n 12.1 协作重定向\r\n 12.2 接口封装\r\n 12.3 瘦接口封装\r\n 12.4 封装中的一些问题\r\n\r\n第十三章 VB中的线程\r\n\r\n 13.1 线程中的局部存储\r\n 13.2 能否避免排队开销\r\n 13.3 线程化或非线程化\r\n 13.4 在客户机EXE中创建线程\r\n 13.5 STA单元中Coordiate Gate的崩溃\r\n 13.6 在DLL中创建工作线程\r\n\r\n第十四章 VB中的字符串\r\n\r\n 14.1 UNICODE转换\r\n 14.2 字符串的分配\r\n 14.3 作为数值的字符串\r\n\r\n第十五章 类型库和VB\r\n\r\n 15.1 VB产生的类型库\r\n 15.2 VB友好的用户定制类型库\r\n 15.3 二进制兼容性\r\n 15.4 后期构建类型库的修改\r\n\r\n第十六章 控制窗口\r\n\r\n 16.1 子类化\r\n 16.2 自定义窗口的创建\r\n 16.3 无窗口的控件\r\n\r\n附录 VBoost参考
给一本书写前言是一种荣幸, 特别当书的作者是一位著名作家而且这本书很有可能会成为VB高级编程人员的“圣经”时更是如此. 但是, 多让我写这几页前言时我的越觉要简单得多:“我终于有机会在Matt的书躺在书店里数月之前再读它了!而我感觉到这更是一种荣幸. 现在您应该体会到我是杯着怎样迫切心情来阅读这本您也在阅读的著作了吧.
我甚至不用介绍 Matthew Curland. 如果您曾经阅读过他发表在 Visual Basic Programmer’s期刊上的加黑标题的编程专栏或者在VBITS以及其他的会议上听过他的报告的话, 您不可能不产生一种要把Visual Basic推向它能力的极限的冲动. 即使您是VB的新手, 当键入“. ”时看到一大串控件或对象的方法和属性时, 您也会感谢他. (Matthew是给Visual Basic增加智能提示特性的开发小组的成员. )
基于下面的一些原因, 我特别高兴Matthew完成了这本书. 他在最近几年发表了许多文章, 但那些文章由于篇幅所限, 不得不将许多高级概念压缩到几页文字中, 相比而言, 您会更愿意阅读厚厚的一本著作. 我在开始阅读本书时, 迫不及待的想了解后面的内容, 略过了一些我认为己经很好的掌握了的专题, 但到后来我发现自己不得不回过头来认认真真的弥补知识上的漏洞.
第二个原因是我现在能够只享受我对VB的既爱又恨的感情的好的一方面. 正如作者在序中所说的那样, 许多高级VB编程人员喜欢VB是因为VB简单, 但因为VB功能有限他们也憎恶它. 这本书告诉我们使用VB可以做任何事情. 同样重要的是, 作者还告诉我们许多编写健壮. 高效的应用程序的技巧, 您在日常编程中会使用到这些技巧. 实际上, 在我发现这本书中包含了许多我以前的工程中出现的问题的解决方法时, 不禁感到十分吃惊. 我相信您也会有同样的感觉.
我喜欢这本书的最后一个原因是Matthew写了一本很有层次性的. 可重用的书. 作为一个程序员, 您对代码重用这一概念应该不会陌生, 但是书的重用对您来说可能是一个新事物. 简单地说, 当您可以多次阅读一本书并且每一次阅读都带有不同的目的的时候, 这本书就是可重用的. 一段时间之前我就认识到可重用的书确实存在, 但实际的例子却不太好找. 因为我已经说服您购买了这本书, 我现在就要告诉您如何最大限度地利用这本《高级 Visual Basic编程》.
第一次阅读时您不必仔细阅读书中的每一个字. 只是对这本书作大概的了解, 熟悉一下Matthew面对问题和解决问题的方法并且记下一些VB的未公开的细节. 即使不想在不久的将来使用他介绍的那些编程技巧, 这些细节也能省去您不少麻烦. 您可以在几小时内完成这一步, 我想即使您三岁的小孩在旁边玩, 这些时间也足够了.
现在要重用这本书了. 这次您要坐在计算机旁, 把您的小孩关在屋中. 返回第一页, 好了, 略过前言, 然后集中精力阅读书中的所有东西. 这一步可能要花好几天的时间, 但是您得到的回报是您可以借助Matthew提供的工具(也可不借助工具)使用您心爱的编程语言来创造奇迹.
您要勇敢地回到重用这本书的另一个层次. 将这本书摊开在书桌上, 浏览光盘中的代码然后搞明白每一行代码完成的任务. 您会发现许多至今仍未公开的VB的秘密, 您就会学会编写那些只有真正的权威才能讲授的代码. 这一次您要关上您的CD播放器, 摆上一杯咖啡并且可能数天不能去上班.
最后给您一个忠告, 这来自于我的亲身经历:这本书可能使人上瘾. 不要在睡觉之前看这本书, 否则您不可能安然入睡.
Francesco Balena简介
WWW.vb2themax.com的创始人
Visual Basic Programmer’s期刊的编辑
Programming Microsoft’s Visual Basic 6的作者