C# vs. Visual C++\MFC

Started by
28 comments, last by Buklenios 18 years, 2 months ago
I was wondering, since I will need to do some windows GUI stuff, and it surely will include the hard to do things in Win32 SDK, what language should I learn? I am a C\C++ Programmer I also know basic Java, maybe that will help your answer... The thing is that I might want to write a property sheet or some other things for game settings or for example for other apps... As I see it thou, C# slowly takes over... Anyway, please advice, Thanks!
This world is ruled by big furry CATS!! :)Meow! :)
Advertisement
The WinAPI sucks, and if it is a main part of your project to have standard windows and buttons etc (meaning you're not making a custom interface like many games have), then your best bet is a language that lets you stay away from the API while still taking advantage of the standard UI, such as C# or Java.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
haha, im not that good, cant make my own gui yet :)
This world is ruled by big furry CATS!! :)Meow! :)
I have been doing some work in C#. And I must say it is pretty good.

However, I feel a subconscious calling to go toward the harder WINAPI stuff. Maybe its cause I need a challenge :P. However I would reccomend you diving head first into the the complexities of native Win32 programming.

Afterword, you will apreciate languages such as C# more [smile]. Creating a simple program does not have to be complicated.
Quote:Original post by Extrarius
The WinAPI sucks


Based on what criteria?

The Win32 API doesn't suck. Just because you don't like it doesn't mean you should go around making generalizations. Your comment simply demonstrates that you haven't had much experience with APIs that REALLY suck.


Quote:Original post by vrok137
I have been doing some work in C#. And I must say it is pretty good.

However, I feel a subconscious calling to go toward the harder WINAPI stuff. Maybe its cause I need a challenge :P. However I would reccomend you diving head first into the the complexities of native Win32 programming.

Afterword, you will apreciate languages such as C# more [smile]. Creating a simple program does not have to be complicated.


I do know some Win32 API (the basic C part programming i mean), the thing is that i dont like langs that i have no control of the way that i want to design it, i mean the fact that everything is in a class, sometimes i prefer using functions withot creating an object... it saves some code lines...

The thing is that when i look at MCAD and MCSD i see that they require VB and ASP and C#, now the question is also, are they trying to get rid of MFC?
This world is ruled by big furry CATS!! :)Meow! :)
Quote:Original post by Ancient Spirit
...are they trying to get rid of MFC?

Of course. It's a horrible hack. It was developed before C++ was standardized, so it does a lot of things in a manner that is inferior to the techniques now available in the C++. WTL was the first attempt to clean that up, but it was never officially documented or supported.

The other problem with MFC is that it is built on top of Win32, which has a number of complexities of its own. For instance, because you generally want to minimize entry points to a system API, and because the Win32 API is an extension of the original Win16 API and implemented without the advantages of polymorphism or genericity, MFC is not a viable long-term windowing strategy for Microsoft.

Note that Windows Forms was a stop-gap measure, to allow a .NET-based approach to using Win32 controls. It is scheduled to be replaced by the Windows Presentation Foundation (WPF), formerly codenamed "Avalon."

There is no "perfect" solution. You will have to learn multiple APIs if you intend to develop Windows GUI applications, unless you elect to use abstraction/wrapper libraries like wxWidgets.
Quote:Original post by Oluseyi
There is no "perfect" solution. You will have to learn multiple APIs if you intend to develop Windows GUI applications, unless you elect to use abstraction/wrapper libraries like wxWidgets.


So what you recommend is not to mess with the choices but learn them both?

EDIT: Windows Presentation Foundation, what lang is it based on and ummm... is there a point of learning MFC then? I mean for jobs and stuff...
This world is ruled by big furry CATS!! :)Meow! :)
I'd recommend you focus on C# and WinForms. That will give you the foundation to move forward to WPF.

MFC was updated with MSVC 7.0 but not much changed with the 7.1 & 8.0 releases.

Jobs wise there is significant work available for .Net programmers and will be into the future. There's a lot of code in MFC that needs to be maintained but I think the sun is on its way down. I cannot see anyone deciding to start a new project in MFC when C++/CLI w/WinForms is a viable option.
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
My problem is that I don't really want to learn new langs nowm because I need to study at the university aswell, so I want to stick with those things, is there a choice for a C\C++ Developer?
This world is ruled by big furry CATS!! :)Meow! :)

This topic is closed to new replies.

Advertisement