1) Is using Visual C++ the only way to create GUI for C++?
2) What's the difference between Dev C++ and Visual C++? Are they supposed to be languages or compilers or IDEs?
3) What's the difference between compilers and IDEs?
This post has been edited by byrandomby1: 27 March 2011 - 01:12 AM
> 1) Is using Visual C++ the only way to create GUI for C++?
No, any compiler capable of generating Win32 executable files should be able to create a GUI program.
What VisualC++ gives you is lots of wizards, templates and UI design tools to make the process easier.
> 2) What's the difference between Dev C++ and Visual C++? Are they supposed to be languages or compilers?
There is only ONE C++ language, and that is defined by ISO.
Various companies, organisations and ad-hoc groups produce implementations of C++ compilers.
If you write standard code as defined by ISO, then any compliant compiler implementation should be able to compile it. This is what makes your code portable.
Various companies, organisations and ad-hoc groups produce IDE's as well.
The only "difference" really is that VisualC++ is a compiler and and IDE from one source, and DevC++ is an IDE from one source, and a compiler from another source.
FWIW, DevC++ is obsolete and unmaintained. Try something like www.codeblocks.org for a modern replacement in the same spirit as DevC++.
1) Is Visual C++ the only compiler/IDE that allows easy creation of GUI?
You can create a GUI in C++ using a notepad and command line compiler if you want, but if you want a visual form designer, then you use an IDE like Visual C++, or alternativevly, QT Creator or something similar. I personally prefer usually not to use any visual form designer and just using the Windows API to create a GUI, although, it depends on what i'm creating. Check out my tutorials to see how to create a basic Windows API program. here, and here.
2) If Visual C++ can create GUI easily, why use other compilers? Does it have its disadvantages?
Well for one, it only works on Windows and there are other easier form designers to use, like QT.