Click here to Skip to main content
15,924,507 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
I'm in my first semester of aerospace engineering and have got a quite reasonable skill in c programming using the standart library, but curricularly my college isnt required to teach me how to program anything out of MS-DOS.
I'd be very, very glad if there was a simple library or API that I could learn how to use so as to give a better look to the software I make... can anyone out there suggest something of the sort? The simpler and easier to learn, the better.

What I have tried:

Ive spent the past month learning c sharp so as to use windows forms, but OOP seems to be quite inadequate for engineering purposes. Ive got graphics.h installed, but it is extremely archaic and doesnt allow for any interesting widgets...
Ive also tried learning WinAPI, but it is disistimulating from the first second to the last! it seems to require ten times more effort than Im willing to spend on it so as to return not very useful functionalities...
Posted
Updated 23-Apr-18 22:40pm
Comments
Richard MacCutchan 24-Apr-18 4:52am    
"but OOP seems to be quite inadequate for engineering purposes."
I think most people would say exactly the opposite. OOP is the ideal vehicle for engineering applications.

MSDOS is ancient history: it is very unlikely that modern software will be written for it, so your colleges reluctance to teach you anything about development for it is very understandable!

The idea of OOP is to get rid of some of the problems of earlier languages like C, to promote modular design, encourage code reuse, and increase reliability - all of which are important principles in any form of engineering. That means that modern software is very different in design to a MSDOS app, just as a modern car or aircraft is very different from it's 1980's equivalent!

You will not find any "easy to use" API that will take C up to modern graphics: while it is very possible to write Windows apps (even for Windows 10) in C, it is horribly complicated in comparison to C#, because the .NET Framework "hides" all the complexity behind easy to use widgets! C# is an excellent general purpose language, even for engineering, but if you absolutely need more control then invest time in C++ instead of C: it includes the OOP features and can provide .NET UI support. It's even fairly simple to mix C++ "heavy duty" programming (or even C if it's written correctly) backend with a C# front end interface.

If I was you, I'd bite the bullet and learn to use C# effectively instead of clinging to C and trying to force it into a modern environment.
 
Share this answer
 
If you want to use C see List of widget toolkits - Wikipedia[^]. Possible options are GTK+, Elementary and Tk.

It is now up to you if you want to learn how to use one of the above libraries or use a different language like C#. From my point of view it would be easier to use one of the above libraries when knowing C well rather than learning C#. If you know C# good enough meanwhile you can use that too.

As you can see from the Wikipedia link, most GUI frameworks are for OOP languages. OOP is not inadequate for engineering purposes. While not needed for some tasks you might come to a point you find it useful even for engineering purposes.
 
Share this answer
 
Quote:
Ive spent the past month learning c sharp so as to use windows forms, but OOP seems to be quite inadequate for engineering purposes
Most people, I guess, wouldn't agree. As matter of fact, it is your best bet.

Quote:
Ive also tried learning WinAPI, but it is disistimulating from the first second to the last! it seems to require ten times more effort than Im willing to spend on it so as to return not very useful functionalities...
Windows API is the foundation: if you really want to know how the Windows OS GUI applications are supported then you have to learn Windows API. Is actually not difficult matter, anyway writing a C application using it could be cumbersome.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900