This topic is now archived and is closed to further replies.

Arsene Zanetti

Question about MFC

Recommended Posts

There are several alternate to MFC. One is Win32 API (raw). Another is WinForm via Borland C++.

MFC is an extensive Win32 API wrapper class. It takes time to learn and use. That is one reason some new Windows developer keep their distances.


Share this post

Link to post
Share on other sites
Most of my problems with MFC stem from the fact that the development of MFC predates the C++ standard. This means some unnecessary baggage that MFC uses to duplicate functionality that was later codified in the standard. Runtime type information comes to mind.

Problems other people have had with MFC include:
* a steep learning curve. - I''m not sure I agree with this one, but I started windows programming the hard way, so I''m probably not the best judge.
* Big and bloated. - Obviously I agree with part of this, but some of these complaints can be addressed by smart linking practices.
* MFC doesn''t completely wrap the Win32 API, so you still need to know quite a bit of raw API programming to get anything significant done. - I think this is pretty much a non-issue, but other people call it a problem, so I''ll share it.

Alternatives to using MFC include:
* Raw Win32 API usage. Fun, but not too productive if you plan do do complex windows applications.
* OWL, if you can find a Borland compiler old enough to come with it. I thought it was rather well designed, but of course, its obsolete now.
* VCL, one of my favorite windows wrappers. The downside is that again, it''s Borland specific. In this case you need either C++ Builder or Delphi. Of course, Borland went insane a few years ago and made their pricing system completely irrational, hence why I prefer MS compilers currently.
* WTL, Microsoft''s Windows Template Library. Sounds interesting, but I haven''t done much work with it.
* wxwindows, a cross platform windowing library that supports Windows
* .NET''s Winforms. This is currently my first stop for creating regular windows applications.

Share this post

Link to post
Share on other sites
MFC is perfectly good for apps although it''s aging. It carries a lot of unnecessary baggage it wouldn''t need anymore (for compatibility). Nice feature: Visual Studio supports MFC apps in creating handler functions.

It''s quite ok for fast whipping up some dialogs and SDI/MDI apps. You achieve the best results if you do fully understand the Win32 API, since on occasion you''ll need to hack around MFC functionalities.

That''s my main problem with MFC: It works fine and dandy as long as you use it the way it''s intended to use. As soon as you try to do something out of the "standard" way you''ll end up working around MFC a lot.

That''s the main reason to use MFC: It''s fully MS app standard compatible; meaning all the short cut keys and basic menu layout is there to start with. Anyone working on windows will be able to start with your app pretty fast (unless you change it completely).

Share this post

Link to post
Share on other sites