Windows Programming without VisualC++


Win32 API programming infomation

Whichever package you decide to use, Windows API programming is different than the basic console interface. If you look in any bookstore, most of the books you'll see are aimed at users of several of the popular Visual IDEs. All of these depend heavily on proprietary C++ class libraries. If you want to do this style of programming, this is the wrong place to be.

Fortunately, there is a wealth of information available on the net to get you started with Windows programming without the owls and wizards. These API links will point you in the right direction.



While VisualC++ allows you to do Windows programming with the assistance of a bevy of Wizards, there are several alternatives available allow you to use the GNU toolchain to get the job done. top

CygWin attempts to create a Unix type environment under Windows, which may be a little confusing for those coming from a DOS/Windows background. A small .dll must be used in conjunction with Windows apps developed with this package, which might be an objection to some.


MingW32, based on the current ecgs compiler, has been closely related to Cygwin in the past. However, due mostly to the work of Mumit Khan, it is now a standalone package. Coupled with Anders Norlander's modified headers, it is a very easy to use package from the GNU tradition. If you desire to work in C++, this should be your first choice. It depends on the native Windows .dll's, and requires no separate support modules.
These links will get you going in short order. MingW32 is easy to set up, but does not come with GNU tools like Cygwin. I prefer to use the DJGPP tools. In fact, I've had problems with the Cygwin make utility chopping long input lines that is not the case with the DJGPP version.


Both of the above assume you will use an editor of your choice, and do not provide a specific IDE. Lcc-Win32, however, comes with a very nice IDE, and is the easiest to set up and use. It, too, relies on the Windows .dll's, so executables are quite small. If nothing else, there is a win32.hlp file on the site that speeds up the task of sorting out the API. This is worth downloading, no matter which package you prefer. Lcc-win32 is strictly for C programming, but there are a number of add-ons and extensions available for DirectX and other programming tasks.

The good news is all these choices have evolved along similar lines. A few tools like the resource compilers or library import utilities may differ, but in most cases the source code will remain unchanged when switching amongst them. Minor modifications may be required to the makefiles, but the migration path is quite smooth. None of them insert the reams of Wizard generated gotchas that VC++ will throw at you. Of course, with no wizards, you have to know what you are doing.

return to the Software page