How can I do GUI programming in C?

This is guaranteed to have nothing to do with the compiler. All compilers do is compile the code that they are given. What you’re looking for is a GUI library, which you can write code against using any compiler that you want.

Of course, that being said, your first order of business should be to ditch Turbo C. That compiler is about 20 years old and continuing to use it isn’t doing you any favors. You can’t write modern GUI applications, as it will only produce 16-bit code. All modern operating systems are 32-bit, and many are now 64-bit. It’s also worth noting that 64-bit editions of Windows will not run 16-bit applications natively. You’ll need an emulator for that; it’s not really going to engender much feeling of accomplishment if you can only write apps that work in a DOS emulator. 🙂

Microsoft’s Visual Studio Express C++ is available as a free download. It includes the same compiler available in the full version of the suite. The C++ package also compiles pure C code.

And since you’re working in Windows, the Windows API is a natural choice. It allows you to write native Windows applications that have access to the full set of GUI controls. You’ll find a nice tutorial here on writing WinAPI applications in C. If you choose to go with Visual Studio, it also includes boilerplate code for a blank WinAPI application that will get you up and running quickly.

If you really care about learning to do this, Charles Petzold’s Programming Windows is the canonical resource of the subject, and definitely worth a read. The entire Windows API was written in C, and it’s entirely possible to write full-featured Windows applications in C. You don’t need no stinkin’ C++.

That’s the way I’d do it, at least. As the other answers suggest, GTK is also an option. But the applications it generates are just downright horrible-looking on Windows.


EDIT: It looks like you’re not alone in wanting to write “GUI” applications using an antiquated compiler. A Google search turns up the following library: TurboGUI: A GUI Framework for Turbo C/C++:

If you’re required use Turbo C, this might be an option.

Leave a Comment