VC++ book for newbie

H

herbalist

Hello,
could someone please help me understand a few things,
first I should say that I would like to start making c++
apps (any and all that I can) and had thought the best
tool for that would be MS VC++ 6.0, however I see that
VC++ 6.0 is being replaced with VC++.net and can only
assume that .net will have all the features of 6.0, is
this true?
Also could someone recommend a book for building
applications in MS VC++.net. I saw one for 6.0 but it is
no longer in print. However could that book be used to
teach application building in .net?

Thanks in advance. and I apologise if this is the wrong
forum
 
A

Alek Davis

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
 
S

smartnose

what if u in my situation?
I have to develop programs controling robots, and image process programs.
I think I'd live with it for a long time.
 
S

smartnose

to learn VC6.0. U'd better learn programming windows first and acquire some
insight into windows system.
<Programming Windows> (by Petzold) is my first choice.
Then <MFC insight out> <Inside VC6.0> and a lot of practise and buck of
source code is neccessary.

Besides this, extensive knowledge in other computer technology such as data
structure, computer architect, assembling language on i386 will help you a
lot if you want to do some real hardcore work with VC(or should I say CPP on
windows?)

I'd say, first of all, you'd better evaluate that if you really should learn
this hard-to-control stuff. Try not to waste your time.
 
A

Alek Davis

Absolutely. Of course, there are areas, in which C/C++/VC++ will play
important (if not the only) role. Legacy applications, device drivers,
controllers, GDI+, etc., do not have viable alternatives (at least now and
in the near future). By the way, some development work is still done in
assembly, but I assume (and I do not claim to be right, but I think I am
rather close) that most (not all, but most) developers these days are not in
business of writing device drivers, etc. A typical application these days is
client-server, Web-based, and/or database-driven, and this type of work is
better (i.e. faster and easier) done in C#. And I am not cheerleading here.
In fact, I am rather skeptical of new technologies and management-hyped buzz
around them, and .NET/C# was no exception. But having worked (and still
working) with both VC++ and C# I can see the obvious benefits of the latter.
So if I were to start my programming career now, I would not want to invest
a lot of time and effort (and becoming a good VC++ programmer will take a
lot of time and effort) on something, which is in process of being gradually
replaced (if not entirely, but at least in significant parts) by the new
technologies. For example, all new projects (which are mostly enterprise
apps) in my organizations and all organizations I am working with are done
in C# or VB.NET. We do not do any VC++, VB work any more, with exception of
support and maintenance of older app. But, as you said, there are other
areas of development where C/C++ will remain the primary programming
language for a long-long time.

Alek
 
R

Russell Mangel

In my opinion Alek has given you some good information:

Forget about Visual Studio 6.0, it has been replaced by Visual Studio
2003.NET.
Visual Studio 2003 .NET has three main languages:
1. Visual C++
2. Visual C#
3. Visual Basic

If you are just beginning to program, choose either Visual C# or Visual
Basic.
If you are just beginning to program, I would highly recommend Visual C#
instead of Visual Basic.

Here is the reason, lets say that you spend a huge amount of time learning
Visual C# and you get pretty good at it.
Eventually, you will certainly find a reason to use or need Visual C++,
since you already know Visual C#, switching/using Visual C++ will be much
much easier.
C# and C++ language syntax are almost identical.

The language syntax difference between Visual Basic .NET, and (Visual
C#/Visual C++) is a pretty tough.
Don't select Visual Basic .NET just because your friends tell you so.

I have purchased at least 12 C# books, Jesse Liberty does a nice job with
this book, you can not go wrong purchasing it.
Programming C#, Third Edition
by Jesse Liberty

Good luck.

Russell Mangel
Las Vegas, NV
 
B

Bruno van Dooren

I have +4 years experience of C++. both high level (database stuff) and low
level (embedded, device drivers, algortihms,...)
i am now learning C#, and my take is that you should never write user
interface software in C++ anymore. i have done it both in MFC, and old-skool
win32 api. memory management is a pain, and productivity is very low.

UI and web stuff is just so much easier in C#, with the added bonus of
garbage collection and type safe code. of course you could also use VB .NET
for this, but with C# you can still use the 'C++' like syntax. i never liked
VB.

I still use C++ to develop algorithms and low level code, but i put it all
in a dll that i can use in C# to put a user interface on it if needed.

kind regards,
Bruno.
 
H

Herbalist

Many thanks for the advice, I will go with the suggested
book - Programming c#, third edition by Jesse Liberty.
Thanks again!.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top