Skip to main content
GameDev.net gamedev.net
🔒 Locked

Microsoft and MFC

Started by Rendman Oct 10, 2005 at 1:33 PM 9 replies 1k views
Original Post
Rendman
Rendman
Okay, so I read somewhere on the internet that Microsoft does not use MFC internally for development. I'm thinking to my self NO FREAKIN WAY. So I bust out depends.exe and check a few common windows apps... and: - explorer.exe - No MFC bindings - iexplore.exe - No MFC bindings - outlook.exe - No MFC bindings - devenv.exe - No MFC bindings - spy++.exe - MFC bindings So one out of all those applications use MFC. Thats crazy. The crap you learn on the internet.
spacemonkeystudios
spacemonkeystudios
I cant code, but for some reason MFC sounds really cool so I can make...tools...
[email=wastedhours@gmail.com]-steve[/email]_______________________Freelance Game Journalist / Designer / Occasional Game Developer[GamingHours.com] [RandomlyAccessed]
Extrarius
Extrarius
MFC is dead, and has been a very long time. They're practically phasing it out in VS2005 by not including it in the express edition (though I'm not sure how many people will be buying that version since it lacks so much).
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
iNsAn1tY
iNsAn1tY
Quote:
Original post by Extrarius
MFC is dead, and has been a very long time. They're practically phasing it out in VS2005 by not including it in the express edition (though I'm not sure how many people will be buying that version since it lacks so much).

Any suggestions from anyone on what we should use when coding GUI-based systems in C/C++? I'm about to embark on a large GUI-based project, and I was going to post asking for suggestions on what to use for GUIs other than MFC (I still might). If there's a better solutions out there, I'll be glad to use it...
My opinion is a recombination and regurgitation of the opinions of those around me. I bring nothing new to the table, and as such, can be safely ignored.[ Useful things - Firefox | GLee | Boost | DevIL ]
Michalson
Michalson
MFC was a failed attempt to create a RAD style windowing system like VB's ActiveX controls or Delphi/C++ Builder's VCL. However it was neither as easy, clean or deployable as any of the above, and so frankly it's been dead for years (companies that needed that kind of RAD development for tools and such just turned to VB or if they had discovered it, Delphi/C++ Builder). If you want to do that kind of thing now, look at .NET WinForms if you can use it.
iNsAn1tY
iNsAn1tY
Quote:
Original post by Michalson
MFC was a failed attempt to create a RAD style windowing system like VB's ActiveX controls or Delphi/C++ Builder's VCL. However it was neither as easy, clean or deployable as any of the above, and so frankly it's been dead for years (companies that needed that kind of RAD development for tools and such just turned to VB or if they had discovered it, Delphi/C++ Builder). If you want to do that kind of thing now, look at .NET WinForms if you can use it.

Right...

This may sound like something of a stupid question, but I've never really got a decent answer to it when I've asked before: professional programs like 3ds max, Paint Shop Pro, Maya, Internet Explorer, FileZilla, etc., do they just use plain and simple Win32, with their own wrappers?

Also, I assume (as I have no experience with WinForms) that I can't use them from within C/C++? I'd have to move my entire project over to C#, or another .NET language?

I'll have to have a look at wxWidgets and Qt, as well...
My opinion is a recombination and regurgitation of the opinions of those around me. I bring nothing new to the table, and as such, can be safely ignored.[ Useful things - Firefox | GLee | Boost | DevIL ]
nagromo
nagromo
Quote:
Original post by iNsAn1tY
Quote:
Original post by Michalson
MFC was a failed attempt to create a RAD style windowing system like VB's ActiveX controls or Delphi/C++ Builder's VCL. However it was neither as easy, clean or deployable as any of the above, and so frankly it's been dead for years (companies that needed that kind of RAD development for tools and such just turned to VB or if they had discovered it, Delphi/C++ Builder). If you want to do that kind of thing now, look at .NET WinForms if you can use it.

Right...

This may sound like something of a stupid question, but I've never really got a decent answer to it when I've asked before: professional programs like 3ds max, Paint Shop Pro, Maya, Internet Explorer, FileZilla, etc., do they just use plain and simple Win32, with their own wrappers?

Also, I assume (as I have no experience with WinForms) that I can't use them from within C/C++? I'd have to move my entire project over to C#, or another .NET language?

I'll have to have a look at wxWidgets and Qt, as well...


I don't know what professional programs use, sorry.

You can use WinForms with C++ .Net, but I don't know in which ways it differs from regular C++. You could also write your GUI in C# and the rest of your code as a unmanaged C++ .dll.

All in all, it seems like it would be easiest to either switch to .Net and WinForms or to just use wxWidgets or another cross-platform GUI toolkit that wraps up Win32 for you.
Michalson
Michalson
Traditionally they just use vanilla Win32 or 3rd party wrappers. As for what you should use, use whatever gets you the best results (in terms of time and the quality of the finished product). Both VCL (Borlands Delphi and C++) and WinForms (MS .NET) are good enough for production level code (MFC is shaky, and frankly not much of an advantage over using Win32, and classic VB's ActiveX controls are very slow due to the passing method).

If you are writing tools I would think about Managed C++, C# or VB.NET. (or if you don't want .NET, you could see about Borland C++ Builder, which has the VCL [Visual Component Library] - a much, much, much better version of MFC)
iNsAn1tY
iNsAn1tY
Thanks. I'll have a look around a bit, see what fits the project I'll be doing.

btw, I remembered that Filezilla's open source. Turns out it uses MFC. I might have a look through some of the more popular projects on SourceForge and see what they're using.
My opinion is a recombination and regurgitation of the opinions of those around me. I bring nothing new to the table, and as such, can be safely ignored.[ Useful things - Firefox | GLee | Boost | DevIL ]
Rendman
Rendman
I don't know very much about this whole .NET mumbo jumbo, but from what I can tell its something akin to Java in the sense that its compiled bytecode that runs on top of a virtual machine. Am I right? If so does .NET run slower than a native Win32 API app? I can only imagine that it would.
Michalson
Michalson
No. Java was designed with a virtual machine in mind, but with JIT compiling added to make it faster (and still slow to start). .NET was not really designed for a virtual machine, it's more like a precompiled program that simply needs to be translated into a CPU specific binary (allowing a single .NET assembly to take advantage of CPU features that didn't even exist when it was compiled, work on different platforms, and use newer versions of standard library functions). Basically .NET is just as fast as regular code (and on Vista it may be a tiny bit faster, due to the security measures of the OS needing to check code without any .NET hints)

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.