Recommended Windows Programming Books
|MVP Tips Page|
|Microsoft Windows Internals, by
David A. Solomon and Mark Russinovich
The definitive book on NT internals. A must-have. For the serious Windows programmer, this is not optional.
|The Security Development Lifecycle, by Michael Howard and Steve Lipner; Microsoft Press, 2006|
|Writing Secure Code For Windows Vista, by Michael Howard and David LeBlanc; Microsoft Press, 2007|
|Win32 System Services, by Ron Reeves and Marshall Brain
This is the book I used to learn how to write Windows NT Services. I used this in an earlier edition. This version is substantially updated for Win98 and Windows 2000. If you have an earlier edition of this book, you want to buy this one, which has many more chapters and covers many new topics such as RPC.
Windows NT Device Driver Development, by Peter
Viscarola and Tony Mason
So what is someone who has written a book on NT drivers doing recommending a book by the competition? Simple. You can't have too many books on how to write NT drivers. We each approach the problem from a different direction. This book presents some information we don't have, and we present information it doesn't have. Together, we both cover enough material that we ideally will be able to answer all your questions. Besides, Peter Viscarola and Tony Mason are a couple of the best in the business.
|Developing Drivers with the Windows Driver Foundation, by Penny Orwick and Guy Smith, Microsoft Press, 2007|
|MFC Internals, by George Shepherd, Scott Wingo, and
Dean D. McCrory
What is really going on under the floor in MFC. Even after using MFC for five years, and teaching courses in it (including a course developed by Alan Feuer), I learned useful facts from this book. If you want to push the envelope of MFC, or just know how to accomplish some interesting goal by knowing what is actually possible--and not just tricks, but insights into what is legal MFC, this is the book of choice.
|MFC Programming, by Alan Feuer
A perfect companion for our Win32 Programming book; this book explains MFC, and gives an overview of most of the controls. Since Alan knew Win32 Programming was in the works, he often references our book if you care about the infinite details of controls, while he concentrates on the overall MFC picture, the document/view architecture, and other MFC-specific technology. You can use it standalone, or with our book (of course, we prefer you do the latter...).
|Undocumented Windows NT by Prasad Dabak, Sandeep
Phadke, and Milind Borate
This is a deep geek book. You really have to be morbidly curious to want to own this book, but for those of us who are (and I am), it is a very interesting book. Details about memory management, system services, the PE format, and other goodies are found here. While a low-priority book for the general programmer, a must-have for the fanatics. (I bought it after a quick perusal of the table of contents, and read it cover to cover the same day. Recommended).
|C: A Reference Manual, by Samuel P. Harbison and Guy
L. Steele Jr.
This is one of the best and most readable reference books on the C language, far better than the classic Kernighan and Ritchie book (which I think is more a rambling narrative than a good language description). A must-have book for any serious C programmer. And I'm not giving a plug just because Guy and Sam are friends and we were all working for Tartan when it was first written; it is really well written.
|Windows Sockets Network Programming, by Bob Quinn and
This is one of the two critical books you need if you are going to program WinSock. Among its many other useful features, it has the absolutely best description of all of the WinSock error codes and what you likely did to get them, or what state on the network caused them. If you're going to program sockets, you need this book (as well as Comer & Stevens, below)
TCP/IP Vol. III Client-Server Programming and Applications-Windows
Sockets Version, by Douglas Comer and David Stevens.
This is the third volume of a series; if you are deeply into networking, or want to know more about what is going on under the floor, you will also want Internetworking with TCP/IP Volume I, Principles, Protocol and Architecture & Internetworking with TCP/IP Volume II, Design, Implementation and Internals. Note that volume III comes in several flavors, including a Unix/Linux N version. You want the one specifically for Windows.
|Windows NT/2000 Native API Reference by Gary Nebbett.
This is one of those books that you will probably never need, and the knowledge in it is knowledge that you should probably never use, because most of it is undocumented, which is Microsoft's official designation for "we feel free to change it any time without telling you, and breaking anything you did that used it, and we don't care", which is an attitude that it may surprise you to learn that I agree with. However, The native API is nonetheless and important piece of Windows NT/2000, and the author presents here material that is absolutely unavailable elsewhere. For those of you who either have morbid curiosity, a desire to know the real innards of NT, or just like to have a complete library, it is a Must Have (OK, I have it; you get to guess which of the categories I fit...)
|The Unicode 5.0 Standard
It's the era of Unicode. Visual Studio .NET 2005 defaults to creating Unicode apps. VB, Java and C# have supported Unicode for years. You should really understand it. This is a relatively expensive book to buy new, but it is the absolutely most up-to-date version of the standard (as of December 2006) and if you have any intention of internationalization, you really need to have it as a reference. The new edition contains material previously not published in hardcopy form.
I've had two previous editions, the 1.0 and 3.0 standards, and they got lots of little sticky-tags marking important sections. The real effort for me was making sure I transferred all the tags across.
|For Grandmas Who Do Windows, by Amy
OK, so it isn't a programming book. But it is good, especially for its intended audience. Some of us even have mothers or grandmothers who are trying to learn the computer (for example, I got a call from my 80-year-old mother who was concerned that the computer had done something illegal...and it even said it did!)
I worked with Amy over 20 years ago, when she was producing a useful guide on Mideast literature. She used my program, one of the earliest publish-from-database programs around, to create the book, including its various indices and cross-references. Diana Bajek was her primary developer of her application, and I added a lot of features to my program to support the Mideast literature project. It was neat to see her name come around again in an article in our local paper, telling about this book. So I made contact with her and we had a pleasant chat. At 75, she knows a great deal more about electronic documentation than most of the creators of said documentation.
Last modified: March 04, 2008