Windows Programming, Book Recommendations

Started by
4 comments, last by LessBread 16 years, 10 months ago
Hello all, I am just finishing up the C++ Workshop here. The project itself was very worthwhile, and I commend everyone who participated and finished the workshop. Anyhow, I attempted yesterday to do a simple Windows Form Application, and well, there is a big difference between console and Windows programming apparently, lol. Can anyone recommend any books, websites, etc. to go to for a novice C++ programmer to learn some windows programming specifics? By novice I mean, like I said, just finishing the C++ workshop. Have a general lock down on most of the concepts presented in the book. However, I still at times use the book as a reference to get things right. Thanks for any help. Shawn
Advertisement
For the nitty gritty Win32, I'd recommend either the website
http://www.winprog.org/tutorial/

or Charles Petzold's Programming Windows, 5th Edition.

Mind you, these are both out of date, and Win32 is a dieing API. The .NET framework right now encapsulates much of if, but it will be gone completely sooner or later.

Windows Programming is extremely ugly, and that's why there are new API's to make it easier, but the above site and book should at least give you a decent coverage of basic concepts about how Windows works under the hood in terms of programming.
Quote:Original post by Nytegard
For the nitty gritty Win32, I'd recommend either the website
http://www.winprog.org/tutorial/

or Charles Petzold's Programming Windows, 5th Edition.

Mind you, these are both out of date, and Win32 is a dieing API. The .NET framework right now encapsulates much of if, but it will be gone completely sooner or later.

Windows Programming is extremely ugly, and that's why there are new API's to make it easier, but the above site and book should at least give you a decent coverage of basic concepts about how Windows works under the hood in terms of programming.


Thanks for the info. Leaves me a little bewildered then as to what to follow up with. What would then be an appropriate follow-up/continuation of the C++ Workshop? Evidentally .NET would be the appropriate choice?

Ive seen lots of comments on .NET, and also Managed Code...or is that meaning .NET? Nevertheless, from what I have gathered around the gamedev.net community is that C++ is still one of the most widely used languages. Or is that just for game development? Long term, yes, I would like to be a hobbyist type game programmer, definitely holds an interest for me. I would rather have the fundamentals of the particular language/API/OS or whatever under my belt.

Maybe I am just reading too much into it....I am definitely confused now. Any more help on where to go would be appreciated.

Thanks,

Shawn


I agree with Nytegard that Petzold's book is an excellent treatment of Win32. Although the book is outdated, it does give a firm understanding of the basics of windows programming. That being said, probably only the first few chapters will be of any use to you. Still worth it IMHO.

If you decide to use unmanaged DirectX, learning Win32 will prove to be quite helpful for you. If you use managed DirectX, it would be more useful to learn .NET. .NET is much, much simpler than the old Win32 API. You don't even have to code a window yourself: Visual studio does it for you. The tradeoff is that you don't have quite as much control over everything, but for your purposes that isn't a concern.
Strength without justice is no vice; justice without strength is no virtue.
Quote:Original post by shawnre
Thanks for the info. Leaves me a little bewildered then as to what to follow up with. What would then be an appropriate follow-up/continuation of the C++ Workshop? Evidentally .NET would be the appropriate choice?

Ive seen lots of comments on .NET, and also Managed Code...or is that meaning .NET? Nevertheless, from what I have gathered around the gamedev.net community is that C++ is still one of the most widely used languages. Or is that just for game development? Long term, yes, I would like to be a hobbyist type game programmer, definitely holds an interest for me. I would rather have the fundamentals of the particular language/API/OS or whatever under my belt.

Maybe I am just reading too much into it....I am definitely confused now. Any more help on where to go would be appreciated.


Alright, to keep this simple...

.NET is a framework. Basically, it's just a collection of tools to use in your code. This can be anything from Ada to Visual Basic. Managed Code is the intermediate code executed by the Virtual Machine.

Now, as far as languages is concerned, this is a very tricky subject open to interpretation. Right off the bat, I can tell you C++ isn't the most widely used language. That would be Basic and it's many forms (particuarly Visual Basic). Game Development though, C++ knowledge is a very valuable skill, and is one of the most widely used.

Honestly, in terms of a hobbyist game developer, my suggestion would be to find a language that works for you. It doesn't have to be C++, it could be C#, or VB, or Python, or Lisp, etc. Then find an API that can satisfy what you want to accomplish.
Here are two books beyond Petzold...

Jeff Richter's Advanced Windows (3rd Edition) or Programming Applications for Microsoft Windows (4th Edition)

Two editions of the same book, he just changed the name between editions. This book goes into the gritty details behinds processes, threads, thread message queues and more. With a lot of programming examples. This is a good follow up to Petzold

Microsoft Windows Internals by Mark E. Russinovich and David A. Solomon. This takes you inside the Windows operating system to describe how the kernel does what it does. Very light on code. This is a more hard core book, necessary if you want to dive into lower levels of the operating system.

I have a copy of Win32 System Services by Marshall Brain. This goes over quite a lot of the system related API's in Windows with a focus on how to use them rather than how they work. Here are a few chapter titles: files, drives, directories, active directories, processes and threads, synchronization, network communication, remote procedure call, distributed COM, communications, windows services, security, consoles, management console, system information, dlls, COM, COM+, distributed network architecture. It comes with a lot of programming examples, but reproduces a lot of information that can be found online via MSDN (indeed, type the name of an API into google and usually the first result is the Microsoft documentation for it). It fills in some of the holes left open by Petzold. It's a useful book, but there might be better ones that cover similar areas so I'm not necessarily recommending it.

A similar book to that one is Win32 System Programming, I haven't checked it out myself but it gets rave reviews.

Windows Graphics Programming: Win32 GDI and DirectDraw by Feng Yuan. If you want to learn more about the basic graphics API used by Windows before moving on to Direct X etc. This is the book to get. Also related: Windows 2000 Graphics API Black Book

And be certain to check out the Gamedev Book section.
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes." - the Laughing Man

This topic is closed to new replies.

Advertisement