dear sir ,
My question is what is the sutiable libraies to learn inorder to be a windows programmer .

someone say that MFC is not structured well and there are lots of easy frameworks shuch as .NET to do the things very easily than using the .NET . and another example is the Cygwin libraries under the windows . So my question is ,I am newbie and I try to learn something .
and I think that I know the core C++ programming language and core Java language. Since I
have completed reading the book Think in C++ . So the time is for me to go to a industrial
learning of the c++ using the MFC or ..........

so my question is what is the best to learn according to your knowledge ? There are many fields that you can learn after you knew the basics of the c++ programming language.
one side is application programming ....
MFC library
.NET library

and another side is game development , the game industry is heavily dependent on the c++ language as I knew .
using the XNA
using the Direct X SDK and its APIs
Open GL programming

and if you try to master youself as a device driver developer then
WDM framework in windows

so the windows programming with the c++ have many sides , and I selected the side to be a application programmer for the windows . Beacuse I love the 'standalone desktop application programming'. So that means that I had to use the .Net or the MFC ? so my question is what is the best ? MFC or STL or .NET . there are thousands of APIs on each one , so it was an stupid decision to master all the things. I love to the MFC more than the .NET
this is changing a person to person . No matter that you love MFC or .NET .

My question is the software like the Photoshop , M$ Excel are written with the MFC isn't it ?
am I wrong . that means that MFC is still using . But some people saying that "MFC is no longer using for the application programming" .so what are you think about that ? when it comes to the x64 , are there any new libraries and APIs that I should learn . I was on a x64 computer and I likes to learn the x64 windows programming instead of x86 , I think that is win64 , is there anyone knows about win64 ? can you give me a advice .

thanks in advance ....

STL does nothing for MS-Windows programming. The intent of STL is portability not anything os-dependent. MFC and STL are not either or situation -- learn both. If I were going to begin a new project today I don't think I would use MFC because there are several other alternatives such as C#, CLR and wxWindows. MFC is a really old class developed by Microsoft as a wrapper for win32 api functions many years before any of those other languages were invented. IMO the only reason to use MFC today is for maintaining old code. If you want to learn MFC, fine, but you should probably concentrate your learning efforts on other previously mentioned languages and wrapper classes.

commented: Good advice especially coming from someone who uses MFC +15

I don't agree with "STL does nothing for MS-Windows" and "MFC and STL are not either or situation". All commercial grade software is still being done in C or C++ (with the help of libraries like STL or even MFC). Almost no commercial grade software, including from Microsoft is made in .Net languages. Just because you can produce nice GUIs with little effort and fast in .Net, it does not mean that you can produce great applications for use outside your company (well, .Net applications are also for consulting companies make money fast). I am not just talking about .Net being slow, in many cases that is not important. I am also considering that you are limiting yourself to what you can do by concentrating only on .Net.

>>I don't agree with ... "MFC and STL are not either or situation"

You mean you didn't know you can use STL in an MFC program.:icon_eek:

I can even use MFC and .Net in a program ;)

That I didn't know -- never tried it. The last time I used MFC was in vc++ 2005, so maybe Microsoft has made more changes for .net. Did you mix CLR/C++ and MFC in the same source files?

We can mix as explained here:
http://msdn.microsoft.com/en-us/magazine/cc163605.aspx

Not something I have done though, but I have done mixed mode easily (managed and unmanaged in the same .exe) where I could have used the STL libraries (but have not because was not necessary).

commented: thanks for that link :) +35

I'd go for the C Win32Api.It gives you a more thorough understanding of how the operating system works and gives you more flexibility.Everything is easy to wrap up in C++ code and you could enhance your programming style by doing things the hard way.Though it's a more complicated approach i consider it worthy for a beginner.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.