Want to learn about the Windows Program, some suggestions?

Someone told me to use MFC, but it seems that MFC will be dead, although it is not there yet ... so if I want to learn about Windows programming now, which one to choose? THX

+4
source share
11 answers

I recommend you learn C #, personally is one of the best programming languages ​​for windows now (personal opinion)

+12
source

If you want to go to the raw Win32API (which, I think, you will learn the most and certainly for your bookshelf) ... Charles Petzold The Bible is a must ... MFC, ATL, C # Winforms - all these are basically wrappers for true API architecture using nice features / events ....

+2
source

If you really want to learn window programming, start with Petzold Windows Programming . You will get a good idea of ​​how Windows works, which is invaluable when working with more abstract structures.

Then go to Windows Forms or WPF. MFC is not worth the headache.

+1
source

If you are going to program at the api windows level, you are better off using something like Qt.

+1
source

find out win32 simple API don't waste time on MFC ... this is my opinion

+1
source

I'm with Andres on this, recognize C #.

Alternatively, you might consider working with java. There is a huge knowledge base there, and in my experience it and C # cross a lot in syntax and form.

If you're looking for problems, consider Project Euler or Praxis Programming

+1
source

If your goal is to learn the Windows API, MFC is not a bad place to run. This is a really thin API shell, almost transparent in most cases. Perhaps the biggest difference is the message processing mechanism. In MFC, you use macros to create a table of message processing functions, and many messages are automatically redirected from parent to child or vice versa. In the original API program, you usually see a message loop with a huge switch statement, and all this is processed in one place.

+1
source

Depends on the type of application you want to create? The latest form-based programming is WPF ... this is the latest and greatest, but Windows Forms programming is also an option (there are still a lot of possibilities).

NTN.

0
source

Depends on the fact that everything in the IT world depends on what you need.

But C # or Java is a good start!

0
source

WPF or WinForms with C #. With WPF you can create very flexible graphical interfaces; WinForms is more traditional. Try Expression Blend to create a graphical interface (WPF) and Visual Studio for coding :)

0
source

Well, it depends on what you want to do. Are you new to programming in general? If so, I would suggest putting together a good programming book or going to college and enrolling in a CS degree program.

If you already know how to program and just want to write Windows programs, you have several options. Which one you choose depends on what you want to do and who your target audience is.

The Win32 API is the lowest level you can get. This is OLD OLD OLD school code C, but you can write small, fast-looking programs. You should do almost everything yourself. The Win32 API is quite complex, and you should know that you need to write better code.

MFC (Microsoft Foundation Classes) - Adopts the Win32 API and encapsulates it in C ++ classes. This is OLD OLD school again, but was recently updated from MS with the new 2008 package, so it is far from dead.

.NET (C #, VB) - the brand spanks new things from MS. It is incredibly easy to write code and create programs. However, it hides all lower-level materials from you, so you just write C # or something else, and it always works.

And, of course, you can always write in Delphi, Qt, WxWidgets, but these are just wrappers for the win32 API.

As for my personal choice, it depends on what I do. At my work, I write C # because the hardware / software is under my control. I know which version of the framework will be installed, how much RAM, hard disk space, etc. For my own projects, I almost always use MFC. It hides the nastiness of the Win32 API and gives me the power of C ++. I would rather do everything .net, absolutely, but I found that many people do not have .net infrastructure, so I greatly limited my user base.

0
source

Source: https://habr.com/ru/post/1303844/


All Articles