Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. What to learn: MFC for C++ or Windows API?

What to learn: MFC for C++ or Windows API?

Scheduled Pinned Locked Moved C / C++ / MFC
c++jsontutorialquestioncareer
13 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    CorvetteZ0606
    wrote on last edited by
    #1

    I've been programming command window C++ programs for quite a while now. I've gotten my feet wet with both MFC and direct API calls for Windows application programming, but I'm not sure which is better. MFC seems easier to get the interface going, but I'm not sure how to interface all the different controls/buttons etc. The API calls seem like they don't let you do everything that you can do with MFC, but they seem more documented in MSDN. Anyways, which way should I go for professional application development. I don't want to learn something that will be useless when I get a programming job after college. Thanks!

    C B T 3 Replies Last reply
    0
    • C CorvetteZ0606

      I've been programming command window C++ programs for quite a while now. I've gotten my feet wet with both MFC and direct API calls for Windows application programming, but I'm not sure which is better. MFC seems easier to get the interface going, but I'm not sure how to interface all the different controls/buttons etc. The API calls seem like they don't let you do everything that you can do with MFC, but they seem more documented in MSDN. Anyways, which way should I go for professional application development. I don't want to learn something that will be useless when I get a programming job after college. Thanks!

      C Offline
      C Offline
      Christian Graus
      wrote on last edited by
      #2

      CorvetteZ0606 wrote: Anyways, which way should I go for professional application development. C#, probably :-) Seriously, if you're going to use C++, I'd be more inclined to learn MFC, because it's so much easier that I wouldn't expect anyone to start a project NOT using MFC unless they had a seriously good reason to do so. But I am expecting that the number of people writing Windows apps with C++ will shrink, especially for custom software, as more and more people move to C# or (dagnamit) VB.NET. However, I think that knowing how a Win32 app is put together is an important skill. CorvetteZ0606 wrote: The API calls seem like they don't let you do everything that you can do with MFC MFC is by and large a lot of wrapper classes around the core API, so I doubt that is the case. Christian Graus - Microsoft MVP - C++

      C 1 Reply Last reply
      0
      • C Christian Graus

        CorvetteZ0606 wrote: Anyways, which way should I go for professional application development. C#, probably :-) Seriously, if you're going to use C++, I'd be more inclined to learn MFC, because it's so much easier that I wouldn't expect anyone to start a project NOT using MFC unless they had a seriously good reason to do so. But I am expecting that the number of people writing Windows apps with C++ will shrink, especially for custom software, as more and more people move to C# or (dagnamit) VB.NET. However, I think that knowing how a Win32 app is put together is an important skill. CorvetteZ0606 wrote: The API calls seem like they don't let you do everything that you can do with MFC MFC is by and large a lot of wrapper classes around the core API, so I doubt that is the case. Christian Graus - Microsoft MVP - C++

        C Offline
        C Offline
        CorvetteZ0606
        wrote on last edited by
        #3

        So you think I should move to C#? I'm not very motivated to do so since I already own Visual Studio 6.0. Also, doesn't an application written in C# require .Net to be installed on the computer to be able to run it? What about computers running OSes like Win 2000 without .Net? Can they run an application I write in C#?

        C 1 Reply Last reply
        0
        • C CorvetteZ0606

          So you think I should move to C#? I'm not very motivated to do so since I already own Visual Studio 6.0. Also, doesn't an application written in C# require .Net to be installed on the computer to be able to run it? What about computers running OSes like Win 2000 without .Net? Can they run an application I write in C#?

          C Offline
          C Offline
          Christian Graus
          wrote on last edited by
          #4

          CorvetteZ0606 wrote: So you think I should move to C#? I think if you want to be employable you should at least download SharpDevelop and the .NET SDK and learn some C#. I'm in favour of knowing as much as possible, not putting all your eggs in one basket. CorvetteZ0606 wrote: I'm not very motivated to do so since I already own Visual Studio 6.0. VC6 is crap, you should get VC7, even if you only buy the C++ compiler ( that is actually pretty cheap ). VC6 standard compliance is really bad, and VC7 is amazingly good. The STL implimentation is tons better as well. Finally, you'll find a lot more MFC7 tutorials nowadays, I would have thought. CorvetteZ0606 wrote: Also, doesn't an application written in C# require .Net to be installed on the computer to be able to run it? Yes. this is a much bigger problem in the minds of people who don't use .NET than it is in the real world. CorvetteZ0606 wrote: What about computers running OSes like Win 2000 without .Net? Can they run an application I write in C#? Yes, both XP and 2000 require downloading and installing the .NET framework before a C# or VB.NET app will run on them. In this day and age, how many people have trouble getting a 30 MB file ? Christian Graus - Microsoft MVP - C++

          B 1 Reply Last reply
          0
          • C Christian Graus

            CorvetteZ0606 wrote: So you think I should move to C#? I think if you want to be employable you should at least download SharpDevelop and the .NET SDK and learn some C#. I'm in favour of knowing as much as possible, not putting all your eggs in one basket. CorvetteZ0606 wrote: I'm not very motivated to do so since I already own Visual Studio 6.0. VC6 is crap, you should get VC7, even if you only buy the C++ compiler ( that is actually pretty cheap ). VC6 standard compliance is really bad, and VC7 is amazingly good. The STL implimentation is tons better as well. Finally, you'll find a lot more MFC7 tutorials nowadays, I would have thought. CorvetteZ0606 wrote: Also, doesn't an application written in C# require .Net to be installed on the computer to be able to run it? Yes. this is a much bigger problem in the minds of people who don't use .NET than it is in the real world. CorvetteZ0606 wrote: What about computers running OSes like Win 2000 without .Net? Can they run an application I write in C#? Yes, both XP and 2000 require downloading and installing the .NET framework before a C# or VB.NET app will run on them. In this day and age, how many people have trouble getting a 30 MB file ? Christian Graus - Microsoft MVP - C++

            B Offline
            B Offline
            Bob Stanneveld
            wrote on last edited by
            #5

            Christian Graus wrote: VC6 is crap, you should get VC7, even if you only buy the C++ compiler ( that is actually pretty cheap ). VC6 standard compliance is really bad, and VC7 is amazingly good. The STL implimentation is tons better as well. Finally, you'll find a lot more MFC7 tutorials nowadays, I would have thought. Try VS2005! This one is great, comes with free express versions (or very cheap) of C++ and C#. Also, you can use winforms and MFC together. Blog[^]

            S C 2 Replies Last reply
            0
            • B Bob Stanneveld

              Christian Graus wrote: VC6 is crap, you should get VC7, even if you only buy the C++ compiler ( that is actually pretty cheap ). VC6 standard compliance is really bad, and VC7 is amazingly good. The STL implimentation is tons better as well. Finally, you'll find a lot more MFC7 tutorials nowadays, I would have thought. Try VS2005! This one is great, comes with free express versions (or very cheap) of C++ and C#. Also, you can use winforms and MFC together. Blog[^]

              S Offline
              S Offline
              S Senthil Kumar
              wrote on last edited by
              #6

              The VC++ .NET Express edition doesn't come with MFC.:sigh: Regards Senthil _____________________________ My Blog | My Articles | WinMacro

              B 1 Reply Last reply
              0
              • C CorvetteZ0606

                I've been programming command window C++ programs for quite a while now. I've gotten my feet wet with both MFC and direct API calls for Windows application programming, but I'm not sure which is better. MFC seems easier to get the interface going, but I'm not sure how to interface all the different controls/buttons etc. The API calls seem like they don't let you do everything that you can do with MFC, but they seem more documented in MSDN. Anyways, which way should I go for professional application development. I don't want to learn something that will be useless when I get a programming job after college. Thanks!

                B Offline
                B Offline
                Bob Stanneveld
                wrote on last edited by
                #7

                Hello, You can't learn something specific in college and expect that you can choose a wide variety of jobs after you graduate. The skills required by every job are very diverse nowdays so it's best to learn something of eveything. College is great for that, I don't think that you get an oppertunity for learning so much different things when you start working for salery. Your employer will only care about executables and the money it's going to cost him. To the point. I think that MFC is good for learning and building large applications. Before you really know how to use it, you'll have to study on that really hard, but it's really nice to spend some of your time on. Win32 API's are good to know too if you want to know how windows really works. There is one catch though: we are about to move on to the next generation processors in a moment. The 64 bit processors. MS will develop a complete new API for this and after a few years, your knowledge of the Win32 API will almost be useless. If I may advise you, try and learn some managed language. C# is a very nice language for rapid development. You'll get your app up and running more fast than you'd ever imagine. Managed C++ is also something worth to look at. .NET is going to be the main development platform for windows in the future. I read that you own a copy of VS 6.0. I think that you should download VS 2005. The beta is free available and some express editions will be very cheap or even free after the official release. I currently use this IDE for some programs and it is great! Way better than VS 6.0 These are just the thoughts of a almost graduate student who was headstrong and thought that VS6.0 would live forever... Hope that you find this information usefull. :) Blog[^]

                1 Reply Last reply
                0
                • S S Senthil Kumar

                  The VC++ .NET Express edition doesn't come with MFC.:sigh: Regards Senthil _____________________________ My Blog | My Articles | WinMacro

                  B Offline
                  B Offline
                  Bob Stanneveld
                  wrote on last edited by
                  #8

                  :wtf: I didn't know that, but that's not a really big problem, since it ships with the beta 2. Blog[^]

                  1 Reply Last reply
                  0
                  • B Bob Stanneveld

                    Christian Graus wrote: VC6 is crap, you should get VC7, even if you only buy the C++ compiler ( that is actually pretty cheap ). VC6 standard compliance is really bad, and VC7 is amazingly good. The STL implimentation is tons better as well. Finally, you'll find a lot more MFC7 tutorials nowadays, I would have thought. Try VS2005! This one is great, comes with free express versions (or very cheap) of C++ and C#. Also, you can use winforms and MFC together. Blog[^]

                    C Offline
                    C Offline
                    Christian Graus
                    wrote on last edited by
                    #9

                    I have it, but I was talking about stuff that is out now, and anticipating that he didn't want to spend a bundle ( why else lumber yourself with VC6 ? ) Christian Graus - Microsoft MVP - C++

                    B 1 Reply Last reply
                    0
                    • C Christian Graus

                      I have it, but I was talking about stuff that is out now, and anticipating that he didn't want to spend a bundle ( why else lumber yourself with VC6 ? ) Christian Graus - Microsoft MVP - C++

                      B Offline
                      B Offline
                      Bob Stanneveld
                      wrote on last edited by
                      #10

                      If you can live with the bugs, the beta is a fine product. It has all the team edition features and it is free. Besides that, he is a student and students should learn the technology of the future. Not the almost trivial things that were nice to know a lot of years ago.. Blog[^]

                      C 1 Reply Last reply
                      0
                      • B Bob Stanneveld

                        If you can live with the bugs, the beta is a fine product. It has all the team edition features and it is free. Besides that, he is a student and students should learn the technology of the future. Not the almost trivial things that were nice to know a lot of years ago.. Blog[^]

                        C Offline
                        C Offline
                        Christian Graus
                        wrote on last edited by
                        #11

                        I am an MVP, I had no idea it was freely available ( I get them in the mail ). He should also know that the betas expire in time, he could be locking himself in for something he can't afford. Christian Graus - Microsoft MVP - C++

                        B 1 Reply Last reply
                        0
                        • C Christian Graus

                          I am an MVP, I had no idea it was freely available ( I get them in the mail ). He should also know that the betas expire in time, he could be locking himself in for something he can't afford. Christian Graus - Microsoft MVP - C++

                          B Offline
                          B Offline
                          Bob Stanneveld
                          wrote on last edited by
                          #12

                          Christian Graus wrote: He should also know that the betas expire in time I didn't know that... I'll have to use my account on the MS AA server again :sigh: Blog[^]

                          1 Reply Last reply
                          0
                          • C CorvetteZ0606

                            I've been programming command window C++ programs for quite a while now. I've gotten my feet wet with both MFC and direct API calls for Windows application programming, but I'm not sure which is better. MFC seems easier to get the interface going, but I'm not sure how to interface all the different controls/buttons etc. The API calls seem like they don't let you do everything that you can do with MFC, but they seem more documented in MSDN. Anyways, which way should I go for professional application development. I don't want to learn something that will be useless when I get a programming job after college. Thanks!

                            T Offline
                            T Offline
                            Toby Opferman
                            wrote on last edited by
                            #13

                            MFC is a wrapper around the WIN32 API. So, by learning WIN32 API it should make it easier to use MFC. As for a job, that's very dependent upon the company. There are some that may require MFC (We don't generally) and there are some that would require WIN32 API over MFC (If you do Windows programming, we perfer WIN32 API or at least some understanding of it as opposed to MFC generally or at least some understanding of how everything works underneath). 8bc7c0ec02c0e404c0cc0680f7018827ebee

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups