Thankyou so much,...
Thankyou so much, that clarified a lot. So, Microsoft Visual CPP is harder to use than standard CPP and more buggy, is that right?
Do you think I would be wiser to learn by using a standard compiler instead? If so, what brand do you suggest?
With a standard CPP compiler, is creating win32 applications really hard?
I'll have a look at those links you gave me, thanks a lot for that.. and get back to you if I have any questions?
I'm looking forward to learning more,
First let me explain what ISO standard C++ is. It is a document published in 1998. It does not compile anything. It just states what an ISO standard C++ conforming compiler and library should do and contain. It also has bugs (and they have fixes – the updated document was published in 2003).
Now compilers are software and all software has bugs. Therefore all compilers have bugs. Older compilers tend to have more deficiencies against the ISO standard, as they either pre-date it or did not have time to catch up. There are very few (if any) fully ISO standard C++ compliant compilers. A similar argument goes for the standard C++ library that accompanies most compilers. I once used a Sun compiler for the SPARC Solaris platform that was as deficient and buggy as VC6 but in different ways. Writing code that compiled on both could be a challenge.
The MS VC++ compilers are good for the Windows platform. But you should know which parts of any code you write are standard C++, which bits use MS specific extensions, maybe for supporting MS specific technology such as COM, which bits of standard C++ the compiler cannot handle because they are not implemented and which bits it should handle but are buggy. Example: the WinMain application entry point function is non-standard as is a main function that returns void. This latter point is especially for VC6 users, which insists in using such a signature for main.
VC 6 is an old product. There have been 3 versions since: .NET (AKA 7.0) .NET 2003 (AKA 7.1) and 2005 (AKA 8.0). Each of these adds MS extensions, primarily for interoperating with the .NET managed environment, fixes some bugs, keeps some bugs, adds new bugs and adds support for more standard C++ features.
So what do I recommend? For Windows specific development I would use MS VC++, preferably VC++ 2005, as it is the latest so should work well with the newer versions of Windows.
For learning standard C++ I would not use VC++ 6 (or those Sun compilers for that matter!). I think VC++ 2005 is OK especially if as many as possible MS extras are turned off. However if I want to ensure I am writing standard compliant C++ I will compile code under more than 1 compiler. e.g. for AllExpert answer examples I often use VC++ 2005 to get the code written then build using a recent version of GNU C++ (g++) under Linux. I also use the Comeau compiler as this is nearly 100% standard compliant. The free Comeau C++ library is not as compliant but you can buy a version from Dinkumware that claims to be 100% standard compliant. See http://www.comeaucomputing.com/
for information. Note there are reasons not to use the Comeau compiler for some Windows development specifically MFC development as the MS MFC DLLs are not compatible with C++ compiled using the Comeau compiler.
The main problem with building Windows applications using other compilers is that the producer of the compiler must either license the Platform SDK from Microsoft or roll their own. I suspect the likes of Borland would do the former while open source developers would do the latter. One open source compiler is the MinGW port of g++ to Windows (http://www.mingw.org/
) and the Dev-C++ IDE which uses it (http://www.bloodshed.net/devcpp.html
So how are you going to write your Windows applications? It is instructional to do it the raw way as you were but gets tedious after a while. This is why GUI code is often handled by some sort of framework. The MFC from Microsoft for example. Borland have C++ Builder which I believe integrates their GUI framework code into some sort of IDE based designer. If you think one day you may wish to have your application run on something other than Windows then you might like to consider using a cross platform framework such as wxWidgets (http://www.wxwidgets.org/
For various free developer resources see http://www.thefreecountry.com/
. C/C++ compilers are listed at http://www.thefreecountry.com/compilers/cpp.shtml
. Note that this is not in any way a Windows specific site. You might like to consider using another operating system such as Linux in addition to Windows.