Question about working as a Windows API programming professional

  • Release Candidate 6
    Guest:
    We are at a “proposed final” true release candidate with nothing known remaining to be changed or fixed. For the full story, please see this page in the "Pre-Release Announcements & Feedback" forum.
    /Steve.
  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in:

    This forum does not automatically send notices of new content. So if, for example, you would like to be notified by mail when Steve posts an update to his blog (or of any other specific activity anywhere else), you need to tell the system what to “Watch” for you. Please checkout the “Tips & Tricks” page for details about that... and other tips!

    /Steve.

coffeeprogrammer

Well-known member
Jul 19, 2021
116
11
So I have a question for all you win32 developers. I’ve wanted to learn windows internals for quite some time. I listened to SN on and off since it started. I actually think it was Steve that got me more interested. I’ve been reading Windows 10 System Programming and yesterday I started Windows Via C/C++ and I think I making some progress. I’ve debugged a few of the sample programs with Windows 10 System Programming and I think it is some of the GUI stuff that I am not understanding like CAppModule, the documentation for ALT and WTL is not that good. I did determine that CAppModule is extending CComModule my looking in atlapp.h on GitHub. But without documentation that seems the only way to figure things out. I actually kinda of like some of this Windows Programming. The Professional programming I done is mostly restful services. And I have to say, it is not hard finding work in the Java/C# areas. I guess my question is how hard is it to find work if your wanting to work with the windows api? I does not seem nearly as easy as say Java, if I goto in indeed.com and type in Java and filter my remote, I find way more than Win32 or Windows API and filter by remote. I did however notice lots of pros on upwork.com seem to show Windows API development as a skill. I am not yet really to add these skills to my resume, but I am also holding back and not spending that much time on it because I am afraid it might be hard to find remote work. I don’t want to move and live in a small town in Maine.



Thanks.
 
I did however notice lots of pros seem to show Windows API development as a skill. I am not yet ready to add these skills to my resume, but I am also holding back and not spending that much time on it because I am afraid it might be hard to find remote work.
I don't know how much of a future there is in Windows API programming (especially with the advent of .NET MAUI). However, I suggest reading the latest Charles Petzold books on the subject.
 
I don't know how much of a future there is in Windows API programming (especially with the advent of .NET MAUI). However, I suggest reading the latest Charles Petzold books on the subject.

Ya, I have that book and I study its code, but that book is more just for the GUI. It also does not consider any of the libraries that can be used; specifically active template library and windows template library. Much of the code in the Yosifovich books that is not in the console uses what I am understanding is a mix of ATL and WTL for the GUI parts. For example his Chapter 7 sample of MD5 Calculator clearly has these kind of MAPS of events that in that would be in the switch statement of windows produce of the Petzold style of WIN32 C programming. Based on what my debugger did when I debugged this is it is some kind of macro that the debugger understand I think. It just stepped though the MAP code in a loop waiting for something to happen. So the programmer does not have to do as much work as writing a big windows procedure. In fact most all of the Yosifovich’s header include these maps. I think I *kinda* understanding them, as I witnessed the behavior in the debugger but I like documentation. There is also CappModule which relates back to CcomModule. Also I don’t know much about that, not in Petzold and there is CmainFrame, and a CmessageLoop, which I guess hold the message loop. I see the message loop object is being added to the CappModule module, but basically put simply, I’ve only read the code for these OO GUI and their way of doing things. Petzold’s book does these things at a lower level. Petzold’s book also does not describe handles that are held in the kernel and their flags. Handles to kernel objects like FileMaps, Processes, Thread and probably other things like semaphores and mutuxes. Those are all Kernel Objects. Yosifovich has a book on the Windows kernel, but I have not opened it, I wanted to feel solid on the System programming first. Any way my question was not specially how to learn more. It is will it be worth it? What do the job prospects look like? There are some that I find, but it much easier (it seems) to find Java or C# type jobs.
 
I think the only people who have to deal with the raw C API would be those who are maintaining some cross-platform library (QT, wxWidgets, etc.), or the project is low level to begin with (like Steve's stuff, hardware drivers)