Herbalist,
As a developer with 7+ years of VC++ programming experience, I would like to
offer an advise: please consider C#. The truth is: VC++ is not an easy
language to master, so even though it offers a tremendous benefit of
allowing developers to do practically anything (using low-level or
high-level APIs), it comes at a price of a very steep (hard to master)
learning curve and low (slow) productivity (especially if you consider
having to deal with issues related to memory management and new distributed
technologies, such as Web Services). Unless there is a particular need why
you would use VC++, I would seriously consider switching to .NET languages.
By the way, it may be a bit confusing but it is hard to answer your
questions because they touch several areas. First of all, if you are talking
6.0 vs .NET, I assume you mean versions of Visual Studio (VS), not VC++
itself. There is no reason to use VS 6.0, because you can still write
traditional VC++ programs in VS.NET (2002 or 2003), the way you would in VS
6.0 (man, whoever at Microsoft marketing is in charge of naming products
should be immediately fired, because it confuses so many people). If you
want to write a C/C++/VC++ program, you can still do it in VS.NET. In
addition to traditional C/C++/VC++ programs (in native code), VS.NET allows
you to write applications in managed code using VC++.NET, C#.NET, or VB.NET.
Now, if you - for one reason or another - prefer to not use .NET and want to
write traditional C/C++/VC++ programs, you first need to determine, what
kind of programs you want to write. Most typical VC++ applications fall
under the four categories: GUI applications, COM components (GUI-based or
GUI-less), NT services or console apps. There may be other types, such as
RPC servers, device drivers, etc, but these are rather rare. The problem is
that each of these app types requires very specific knowledge. If you know
how to write COM servers, you may not necessarily know how to write GUI
applications, so you need to know what you want to do before getting a book.
If you want to write a GUI app using VC++ and MFC, you can still use the old
MFC books, because the fundamentals of technology did not change from VS 6.0
to VS.NET 200x. But I would seriously advised against it, because it does
not make much sense investing a lot of time and effort in learning something
which is slowly fading away (I would say that it should take an average
developer at least 3-4 months to reach a comfort zone in either MFC or
COM/ATL). And it will fade away (in many areas, at least), because of the
productivity and ease of use offered by C# and VB.NET. Sure, they are still
limited and have problems of their own but they will continue to improve (I
am just amazed how these new technologies make easy what used to be hard (in
most cases) and hard what used to be easy (in some cases)). Even now, given
my approximately equal knowledge of VC++ and C#, I prefer to program in C#.
In my team, all new projects are done in C#, and there is a reason for this.
Alek