Bruce McKinney says farewell to Visual Basic, but not before he has one last fling with a few flames, apologies, bug fixes, advice, and some bits of technical information

Saying Goodbye to Hardcore Visual Basic
by Bruce McKinney

In two well-received editions of Hardcore Visual Basic (Microsoft Press, 1997, ISBN: 1-57231-422-2), Bruce McKinney has penetrated, mastered, and explained the details of Visual Basic to developers. When he began the preparation for a third edition based on VB6, however, he reevaluated his relationship with the language. In this article he updates the second edition of his book, explains why there won't be a third edition, and tells his audience why he and Visual Basic must part company.

Contents

A Hardcore Declaration of Independence

How a visit to Delphi confirmed my preference for and disappointment in Visual Basic

Why I became weary of my favorite language

How I was seduced into a third edition despite reservations

How and why I selected a co-author

My foolish plan for minor enhancements

How the Third Edition died a horrible death amid flames of incompatibility

Why Visual Basic rejected my type library with extreme prejudice

How I fixed the type library to no avail

How compatibility died a mysterious death, but was resurrected

How a component almost fell victim to the Dialog Box From Hell

Why GDI API calls meet their match in AutoRedraw forms

How build bugs bedeviled but could not block sample compilation

How one last bug stopped the final build

The decline and fall of documenation

Bug Fixes, Corrections, and Additions

How to get the sample programs

Installation for VB6

Installation for VB5

Directory organization

It's not my fault

Chapter 1

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Chapter 6

Chapter 7

Chapter 8

Chapter 9

Chapter 10

Chapter 11

Author Bio

Other Code and Type Library Fixes

Appendix A. The Dictionary Class

Not Just a Better Collection

Associative Arrays and Dictionaries

Arrays, Strings, and Variants

Appendix B. VB Strings and Pointer Arithmetic

How String Data is Stored

Toggling Case

Programming With B - -

Make It Right Before You Make It Fast

Do It Faster with the API

A First Try With ANSI APIs

Working On Byte Arrays Rather Than Strings

Forget the String, Just Use the Byte Array

What About the Algorithm?

Using the SHLWAPI Library

Searching Strings Backward

Back To Code Review

Split Sucks

Hacking for Portability