tags:

views:

501

answers:

5

I'm an experienced Java/C# developer. I studied C/C++ in university but have never used them to build any non-trivial software. Now I'm interested in learning about C/C++ programming in Windows and looking for good books to get started.

Specifically, I want to learn about Win32 API, MFC, COM, event hook, screen capturing, multithreading, and networking. Good books that cover many of these topics, even at introductory level (sufficient to start coding in the respective topic & explore more later), are of more interest to me than books covering only one or two of those areas in depth.

What are good books which meet these criteria?

+9  A: 

The book on WinAPI: Windows Programming by Charles Petzold BTW: It's all in plain C.

h0b0
Here's also Petzold's link: http://www.charlespetzold.com/pw5/index.html
Kyle Walsh
I believe that is rather old... though it is a very good book
+7  A: 

Programming Windows, The Definitive Guide to the Win32 API

by Charles Petzold is THE bible of Windows programming. Cited for the last umpteen years as the best book on learning to program Windows, it covers the Win32 API and how to program it using C in great detail. (Note: even if you use MFC for your programs, it is still helpful to know the underlying mechanisms on which MFC relies.)

Windows via C/C++

Without question, this book by Jeffrey Richter and Christopher Nasarre is probably the best book on Windows programming. the book deals with advanced issues like working with threads, proceses, heaps, memory-mapped objects, kernel objects, exception handling, thread synchronisation (mutexes, semaphores, critical sections, etc), and so on.

Kevin Boyd
+1  A: 

Why a book? The internet is full of just about everything you need to learn any programming language. There are arguably a few books that any programmer needs to own/purchase these days, but beyond that, I don't understand the tech book route at all -- unless you enjoy carting 100's of pounds of tree material around with you when you have to move.

oldmanjoyce
@oldmanjoyce: I agree. I am also using that vast resources only.
Aviator
@oldmanjoyce The internet is (usually) great for getting an answer to a specific question but is terrible in providing a structured way from getting from A to B. A well written tech book can take you from knowing nothing about a subject to knowing what questions you need to ask when you are trying to solve a problem.
Peter M
@oldmanjoyce: my reason is here (http://www.buunguyen.net/blog/when-you-learn-new-things-learn-from-books.html)
Buu Nguyen
+1  A: 
brianegge
A: 

C++ and Windows are hardly a good choice any more as in the .NET world C++ is a bit of a second class language. If you want to see what modern C++/WIndows programming is all about have a look at a book like C++/CLI in Action . But to be honest unless you want to do some very system programming type things just use c#.

mikej