Customer Reviews


19 Reviews
5 star:
 (14)
4 star:
 (2)
3 star:
 (2)
2 star:
 (1)
1 star:    (0)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 

The most helpful favorable review
The most helpful critical review


61 of 62 people found the following review helpful
5.0 out of 5 stars Black Belt Windows Programming Book
Advanced Windows is bettered by the fourth edition . This book is the most detailed under the hood treatment of Windows system programming and the best book of multithreading on the shelves today. If you want to really be a master guru Windows developer and not have the high level superficial just need to know now to get by skill, this book is the source for under the...
Published on October 17, 1999

versus
25 of 31 people found the following review helpful
2.0 out of 5 stars Important Mistakes and Omissions
I looked at this book for assistance in solving two important problems that occurred in my work; in one case, the book was definitely incorrect and misleading, and, in another, it failed to provide the required information, despite consuming considerable space on related, but less important, information.
First, and most seriously, the treatment of thread...
Published on December 1, 2000


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

61 of 62 people found the following review helpful
5.0 out of 5 stars Black Belt Windows Programming Book, October 17, 1999
By A Customer
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
Advanced Windows is bettered by the fourth edition . This book is the most detailed under the hood treatment of Windows system programming and the best book of multithreading on the shelves today. If you want to really be a master guru Windows developer and not have the high level superficial just need to know now to get by skill, this book is the source for under the hood knowledge. No sissies, not for MFC wannabees, or MFC GUIs developers, not for wimps but for hard core Windows developers. The only knock on this book is a lack of coverage on RPC, Sockets, and Services. If you need coverage of these topics couple this Richter title with Marshall Brains classic Win32 System services. With these two books there is no other windows books you need. Then perhaps you can go to the MFC books, say MFC interals.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


38 of 38 people found the following review helpful
4.0 out of 5 stars Great Book, Some Style Hurdles, July 20, 2001
By 
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
This book would have been better titled "Advanced Windows Programming Topics" because with the exception of the chapter on Unicode and the three chapters on Structured Exception Handling, it covers topics that come into play in the advanced stages of specific types of application development. It is not nearly as generally applicable as the title suggests. For instance, it handles virtual memory and memory-mapped files, but not basic memory management. It handles advanced Windows messaging topics, but not any UI programming. It does not cover I/O or many universally required items such as strings, time, etc. in either their C standard library, C++/MFC class library, or ATL template library forms. It also does not cover higher-level info like COM, networking, etc. which are where many new technologies live (ADO, ADSI, SOAP, XML, Internet, etc.)
It is very Win32-specific and heavily slanted toward Visual C++. I think it is a great fit with Inside Windows 2000, because many of the advanced topics covered from the programming perspective here are also covered from the internal system operation perspective there.
These are not so much problems as they are a level-set for your expectations. There are plenty of other great books on the topics not included here.
There were three distractions that plagued this book. First, there is far too much source code printed in the book. There is a CD and there are code snippets in the text (in addition to the complete source code later in the chapter). This was far too redundant and caused quite a bit of page flipping. Although it is quite interesting and beneficial to examine source code, its placement in this book just interrupts the flow of reading. Second, there is quite a bit of useless discussion on what doesn't work, including rambling sections on the many failed attempts the author had before achieving success on a topic. This was also a distraction. It would have been better presented as the correct way of doing things with admonitions on what not to do and possibly why. The blow-by-blow description of the process used to discover these things was too frequent and became annoying. Third, there were similar sections that were less about the author's own exploits but just as overdone. Most of these focused on examining what could happen if you didn't code correctly. They would start with a basic statement of what could go wrong, but then went on to beat the concept into the ground by devoting paragraphs to aspects of the ramifications that are completely obvious to anyone in this book's target audience. There is some value to this last type of analysis, as it can help the thought process required for hard-target debugging, but these should have been in a debugging chapter rather than drawn out and placed with the rest of the text.
In spite of these hurdles in style, the book covers topics that are absolutely essential for robust application development. It covers Unicode, Processes, Threads, Synchronization, Memory Management, DLLs, Exceptions, and certain advanced Windows UI topics. For every topic covered, the coverage was authoritative. The author has a great understanding of the topics covered and manages to cover nearly the entirety of a topic without it seeming like a reference guide. In that, it is extraordinarily well done. I have since adopted several important best practices in synchronization, thread management, DLLs, and so forth. Every topic was rife with great information.
For the topics covered, this is one of the best books I've read. This is an extremely valuable book and a definite must read, but not until after you are quite well versed in "Programming Applications for Windows" ironically.
As a final note, if you're thinking of reading this book, you will thoroughly enjoy reading the author's Programming Server-Side Applications for Windows as well. It has the same source code redundancy issue, but is much leaner in the other aspects of style. It covers many excellent server-side topics like services and performance-enabling your applications. In addition, it offers the best coverage of scalable asynchronous I/O and the best coverage of Win2K security that I've ever read.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


16 of 16 people found the following review helpful
4.0 out of 5 stars Timely successor to "Advanced Windows", April 11, 2000
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
Edition 3 of this book, under the title "Advanced Windows" was such a classic that it rapidly vanished from bookshops. For love or money, no copy could be bought anywhere, and want of any alternative, serious programmers had to beg, borrow or steal a copy to do any real Windows programming.
Rather than reprint, it seems that Microsoft press preferred a new edition, and indeed, it is substantially different from the previous one. It even has a new name, albeit so bland one has no idea what is inside the book. The material has been completely rearranged, and the code samples rewritten, often using C++.
So what is new?
Well, there is the now-obligatory chapter on Unicode, quite unnecessary since it gets more than exhaustive coverage in Petzold's heavily overweight "Programming Windows", fifth edition, where it belongs.
There are chapters on new Windows features, such as Jobs, whereby several processes can be grouped together and have common properties, Fibers, good for fast porting UNIX multithreaded applications to Windows, and Thread Pooling, whereby a pool of threads can be reused without creating and destroying the threads each time.
There are also expanded sections on kernel objects, threads, processes, scheduling, synchronization (possibly a bit overdone), memory architecture and management, memory mapped files, exception handling, basic and advanced dll topics. In all these cases the coverage is extensive and excellent, with full analysis and explanation of what really happens under the hood of the operating system.
Those who regularly read the columns of Pietrek and Richter in Microsoft Systems Journal will recognize some of that material gathered together here. Where necessary, there is also excellent psudo-code showing how the operating system works.
Well, who needs this stuff?
Not a programmer making a simple application with a vanilla GUI. For that, Petzold's "Programming Windows" and Prosise's MFC provide more than enough excellent material. This book is meant for those who need to write power applications, which harness the full potential of the operating system, and even overcome some of its serious bugs and shortcomings. Its hard to understand why Windows is doing things wrong, and write workarounds, unless you have a good idea of what it is meant to be doing. Richter explains very clearly how it is supposed to do its work, and often how to make it cleverer. The first time I saw "Advanced Windows" I wondered who ever needed this stuff, now his books are permanent residents on my desk.
So why do I give it 4 stars, unlike all other reviewers who give it a 5?
Richter writes this book for Windows 2000 and 98, with not a word about NT and 95. Now, 98 is just 95 warmed over, and 2000 is NT 4 tweaked a bit, so most of what he writes is directly applicable. However, there are more advanced functions, and topics, which do not exist on Windows 95, or worse, exist but behave differently (such as the Interlocked function group), and some modules, such as Toolhelp, which exist on 9x and Win2000, but not NT. Microsoft is welcome to introduce new functions, but it is hard to use them if one is writing an application for home users, many of whom will be using 95 for several more years. And unless Microsoft offers us all free upgrades from 95 to 98, and from NT to 2000, we will not be able to safely use these functions for several years yet. I expect any Microsoft reference book such as this one to at least point out these quirks. Instead, there is not a word of warning as to which of the functions it so happily recommends do not exist under the old versions of Windows, and therefore cannot be used by most of its readers. Sorry Richter, no full marks from me, but fix this problem, and I'll give you a 5!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 7 people found the following review helpful
5.0 out of 5 stars It won't disappoint you..., August 3, 2001
By 
Skydiver (Pordenone, Italy) - See all my reviews
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
The Bible is to the priest as "Programming Applications for Microsoft Windows" is to the advanced Windows programmer. Everything you want to know about programming Windows internals you'll get it all here. Whether you are a good C/C++ Windows programmer you'll find it essential. It is the classic book you should keep on your desk. It covers all the following subjects:
THREADS: You'll learn when and how to create threads and how to schedule and synchronize them through synchronization objects like Events, Mutexes, Semaphores, Critical Sections; all explained in detail.
MEMORY MANAGEMENT: You'll discover how Windows manages memory and how you can master Memory Mapped Files, Virtual Memory and Heaps.
FILE SYSTEM: All the main file management APIs are described and you'll find useful examples.
DEVICE I/O: It describes how Pipes, Mail Slots, Sockets and Serial Ports work and how to perform asynchronous I/O operations on the local storage or on the network.
SEH (Structured Exception Handling): You will learn how to take advantage from Exception Handling even by C applications and how SEH will help you in writing more robust applications.
PROCESSES: You can get all the information you need to understand how Windows Processes work and how to modify their properties.
The companion CD and book is full of very good examples and source code. There are plenty of hints and tricks and Win 32 to Win 64 code migration is covered too. It won't disappoint you, but it isn't for beginners.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


25 of 31 people found the following review helpful
2.0 out of 5 stars Important Mistakes and Omissions, December 1, 2000
By A Customer
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
I looked at this book for assistance in solving two important problems that occurred in my work; in one case, the book was definitely incorrect and misleading, and, in another, it failed to provide the required information, despite consuming considerable space on related, but less important, information.
First, and most seriously, the treatment of thread synchronization, especially events, has problems and limitations, even though the introduction (Page XXIX) promises "greatly improved threading synchronization material." I looked at the book to see if it corrected a deadlock in an example on Page 334 (waiting for multiple semaphore counts) of the second edition (Advanced Windows, 1995). The deadlock example was removed, without explanation. The problem can be solved by using the PulseEvent() function properly, but here is what the new edition says on Page 293:
"PulseEvent... (is) just like calling SetEvent immediately followed by ResetEvent." This is incorrect and fails to consider the race condition. "PulseEvent is not very useful ... because you have no idea of what thread, if any, will see the pulse and become schedulable..." This missed the point of threads and synchronization. My problem was a priority queue, and I found another book that showed how to do it using PulseEvent. The multiple wait semaphore, incorrectly solved in Edition 2, is just a special case. This is important and is what synchronization is all about. Following this book's advice could lead to nasty deadlocks, race conditions, and other bugs.
There are other misstatements and poorly motivated examples in the adjacent pages. The page 296 example uses events essentially as a binary semaphore or mutex but does not tell you so, even though the book has already discussed the critical section concept.
There was also an important omission in the CreateProcess and inheritable handle discussion around Page 90. I needed to redirect standard I/O to the child process, which runs a "black box" program that I can't modify. The book discusses every technique for using inheritable handles other than what turned out to be the most useful one (using the handle members in the StartupInfo structure); I finally figured it out, but it wasn't easy, and it sure would have been nice if this very long book had given a paragraph to the solution.
Without a doubt, there must be some good material here, given the other ratings. Nonetheless, from the perspective of my needs, it failed to help and was misleading.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


10 of 11 people found the following review helpful
5.0 out of 5 stars great book, January 26, 2000
By A Customer
Verified Purchase(What's this?)
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
I would recommend this book to anyone with a good working knowledge of C/C++ and a desire to learn the real mechanics of windows programming. Not very practical unless you also know the GUI end of it, but nonetheless this book can't be beat.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful
5.0 out of 5 stars A Powerful Book for Windows Programmer, August 26, 2002
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
Hi.
This is one of the most, if not the most, powerful Windows programming book I know for developing Windows program using C++. Jeffrey Richter does not bother with all the GUI tools. He shows the readers some of the key techniques Microsoft has done to Windows at the kernel and how Windows communicate at the kernel level via a messaging system. From multithreading and synchronization to multiple processes; from DLL and DLL hooking to file-mapping, Windows programmers learn Windows programming concepts and tools that will ultimately improve speed, efficiency, and stability in their Windows applications.
This is a *must have* book for C/C++ Windows programmers.
Kuphryn
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful
5.0 out of 5 stars classic for user mode programmer, January 18, 2003
By 
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
jeffrey richter is one of few masters who really understand windows programming! this book is absolutely a classic for advanced windows programmer. But it 's not suitable for beginner. I think one who wanna learn this book should a prerequisite background such as charles petzold's "programming windows".
The book tells many advanced skill which is must in windows programming. The best programmer should not only know how to write codes ,but know why he write these codes. It's possible only when he understand the mechanicsm of the system running.
jeffrey richter tells you all of the necessary background in the book. So don't hesitate, buy it!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful
5.0 out of 5 stars A book beyond ordinary programming book style, March 16, 2001
By A Customer
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
This is definately a great book. It is a new version of Advance Windows Programming, but it is not only for expert. Everyone who make programs on Windows platform should take a look. If you are facinated by the jargon like "thread, process, dll, virtual memory...", go to this book, you will find out the stuff running on your computer for years is really cool, and you finally understand what's going on out there, I mean really understand. You won't be regret to buy a book like this. Thanks Jeffrey for the well-written book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 9 people found the following review helpful
5.0 out of 5 stars CD code very helpful, February 4, 2000
By A Customer
This review is from: Programming Applications for Microsoft Windows (Microsoft Programming Series) (Hardcover)
It's very helpful to be able to single step through the source code examples while reading the text. This book must be in the library of every serious NT/2000 developer.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

Details

Programming Applications for Microsoft Windows (Microsoft Programming Series)
Used & New from: $1.60
Add to wishlist See buying options
Search these reviews only
Send us feedback How can we make Amazon Customer Reviews better for you? Let us know here.