From: Robert Macy on
Thank you for your reply, I am beginning to believe that what I have is
indeed purposely incomplete.

What is installed is

Microsoft Visuall C++ Toolkit:
VCToolkitSetup.exe

Microsoft .NET Framework, SDK, and ATL extended products:
dotnetfx.exe, setup.exe, and ATLExt.exe

Windows Template Libraries:
WTL-70.exe, WTL-71.exe, and WTL-75.exe

Fully installed platform SDK
PSDKFULL.bat
[this is big]


Historically, I've been trying to learn about threads, ran across a
sample program with the header file atlstr.h which I couldn't find,
hence the sample did not compile. For 3 days now I have been trying to
find atlstr.h Also at MS website I ran across sample thread programs
containing the atlstr.h file, too.

My original post erroneously listed VS .NET 2003. [I am new to all
this] I am willing to believe that one of the SDK's, or such, had
files that fit around VS .NET 2003, so as the SDK installed; it created
the folders to hold those files. I saw the folder in "Program Files"
Hence my misunderstanding of what I had. [I am new to all this]

The description of this massive quantity of time consuming download
described itself as "complete" and "all that is necessary to". So I
spent the time to download them and install them, only to find that
something is still missing. Something that MS still does not tell me
where it is. So how do I trust that *if* I pay for some "undefined"
software; I will get what I need, and there won't be one more missing
piece? I can't.

As a sensible person, I was under the impression that what I had *was*
crippled enough. Having a lousy line command compiler *and* no IDE and
no coherent documentation. I was perfectly willing to use these
obnoxious tools to learn enough to see if this is an area I wish to
invest in. In order to do this learning I found sample programs - at
the source of Windows: MS website - which were not useable for me. AND
more importantly, please listen to this, I don't know what I need, or
don't have. It seems incumbent to me that the supplier of all this
stuff, Microsoft, should be aware of what is missing, or where
something resides. I am startled that this information is either not
known at MS, or worse, purposely obfuscated. To me, this is not
reasonable strategy for winning customers. In other words, what do I
get when I pay them. It certainly doesn't look like help.

It has taken much time and the valuable help, luckily supplied by
people like yourself, to tell me what Microsoft should have already
told me and had as ready information for their potential customers. I
must be very old fashioned to think that it is the VENDOR's
responsibility to educate their consumer.

- Robert -

From: Carl Daniel [VC++ MVP] on
Robert Macy wrote:
> Don't think I have the IDE.
>
> What is installed is
>
> Microsoft Visuall C++ Toolkit:
> VCToolkitSetup.exe
>
> Microsoft .NET Framework, SDK, and ATL extended products:
> dotnetfx.exe, setup.exe, and ATLExt.exe
>
> Windows Template Libraries:
> WTL-70.exe, WTL-71.exe, and WTL-75.exe
>
> Fully installed platform SDK
> PSDKFULL.bat
> [this is big]

Then that explains it. You don't have <atlstr.h> unless you've installed
Visual Studio Standard Edition or above.

-cd


From: John Carson on
"Robert Macy" <macy(a)california.com> wrote in message
news:1135810089.266014.73450(a)g44g2000cwa.googlegroups.com
> Thank you for your reply, I am beginning to believe that what I have
> is indeed purposely incomplete.
>
> What is installed is
>
> Microsoft Visuall C++ Toolkit:
> VCToolkitSetup.exe
>
> Microsoft .NET Framework, SDK, and ATL extended products:
> dotnetfx.exe, setup.exe, and ATLExt.exe
>
> Windows Template Libraries:
> WTL-70.exe, WTL-71.exe, and WTL-75.exe
>
> Fully installed platform SDK
> PSDKFULL.bat
> [this is big]
>
>
> Historically, I've been trying to learn about threads, ran across a
> sample program with the header file atlstr.h which I couldn't find,
> hence the sample did not compile. For 3 days now I have been trying
> to find atlstr.h Also at MS website I ran across sample thread
> programs containing the atlstr.h file, too.
>
> My original post erroneously listed VS .NET 2003. [I am new to all
> this] I am willing to believe that one of the SDK's, or such, had
> files that fit around VS .NET 2003, so as the SDK installed; it
> created the folders to hold those files. I saw the folder in
> "Program Files" Hence my misunderstanding of what I had. [I am new
> to all this]
>
> The description of this massive quantity of time consuming download
> described itself as "complete" and "all that is necessary to".

In a sense, these claims are correct. You are not limited in the programs
you can write, only in the approaches that you may take to writing them. See
below.

> So I
> spent the time to download them and install them, only to find that
> something is still missing. Something that MS still does not tell me
> where it is.

I don't understand this claim. ATL is part of every version of Visual Studio
that includes VC++.

> So how do I trust that *if* I pay for some "undefined"
> software; I will get what I need, and there won't be one more missing
> piece? I can't.
>
> As a sensible person, I was under the impression that what I had *was*
> crippled enough. Having a lousy line command compiler *and* no IDE
> and no coherent documentation. I was perfectly willing to use these
> obnoxious tools to learn enough to see if this is an area I wish to
> invest in. In order to do this learning I found sample programs - at
> the source of Windows: MS website - which were not useable for me.
> AND more importantly, please listen to this, I don't know what I
> need, or don't have. It seems incumbent to me that the supplier of
> all this stuff, Microsoft, should be aware of what is missing, or
> where something resides. I am startled that this information is
> either not known at MS, or worse, purposely obfuscated. To me, this
> is not reasonable strategy for winning customers. In other words,
> what do I get when I pay them. It certainly doesn't look like help.

I sympathise with your frustration. The range of tools and options available
in Windows programming makes it easy to head down a wrong path. And
advertising puffery doesn't help.

What you really need, and currently lack, is an understanding of the Windows
programming "landscape". Without that, there is no way to make appropriate
decisions on products or make appropriate use of documentation and sample
programs. Whenever I buy any moderately complex product in an unfamiliar
area (a stereo system, say), I have difficulty figuring out what version to
buy since I don't know the significance of various features. In my
experience, sales people are generally worse than useless, and I need to
spend days doing my own research. The same considerations apply here, but
the problems are magnified many times because the product is vastly more
complicated.

There are many approaches you can take to Windows programming, even given
the choice of C++ as programming language, due to the wide range of
available libraries (chiefly the Active Template Library, ATL, the Microsoft
Foundation Classes, MFC, and the .Net library --- plus a whole lot of 3rd
party libraries). A typical Windows programmer is competent only in a subset
of these and, even if competent in them all, will typically only use one
approach for each project. If such a programmer were to download a random
sample on, say, threading, then there is a good chance that the programmer
would not be able to understand or make use of it, even if they have a
Visual Studio version that supports it. An ATL sample will not normally be
of interest to someone writing a program using MFC, and neither ATL nor MFC
samples will be of interest to someone using the .Net library. None of the
three will be of interest to someone who programs directly in terms of the
Win32 API. Thus Windows programmers learn where the documentation/samples of
relevance to them are to be found and, for the most part, disregard the
rest.

Rather than trying to chase down individual header files and rather than
focus on an area of interest (threading, graphics...), you need to focus on
an approach to Windows programming. If you are to use the Win32 API
exclusively, then the free versions of the compiler do have all you need.
You just need to steer clear of documentation/samples that pertain to other
approaches. If you get your samples from the Platform SDK rather than select
individual samples from the Microsoft site or elsewhere, then you won't be
distracted by ATL or MFC.

Programming using the Win32 API (directly) is the oldest approach and is
used less these days. The most modern (not to say necessarily the best)
approach is to use the .Net library. To use this with C++, however, you need
to learn the Microsoft extended version of C++ known as C++/CLI.

The fact that the free versions of the compiler offer these two
choices (Win32 API or .Net) is not an accident. Microsoft is pushing the use
of the .Net library, so it doesn't want to give you too much in the way of
attractive alternatives --- not for free anyway. (WTL, incidentally, is
freely available but depends on ATL and is therefore not an option without
it.) Of course, Microsoft has to hold something back or no-one would pay
money for the other versions of its development tools.

As I have already stated, if you want to program using ATL or MFC, then you
need a version of Visual Studio (I don't know about the 2005 version of
Visual Studio Standard, but the earlier versions were the source of some
frustration, so Visual Studio Professional is probably what you should be
looking at, finances permitting; there is a much cheaper student version of
VS Professional if you qualify). Once again, you need to be clear that you
are doing either ATL or MFC programming and only attempt to use sample code
employing the same framework.


--
John Carson






From: Stephen Howe on
> I don't understand this claim. ATL is part of every version of Visual
Studio
> that includes VC++.

Not so. It is not in Visual Studio Express 2005 yet that includes the C++
compiler.
Nor is MFC.

Stephen Howe


From: John Carson on
"Stephen Howe" <stephenPOINThoweATtns-globalPOINTcom> wrote in message
news:e8M0S9GDGHA.516(a)TK2MSFTNGP15.phx.gbl
>> I don't understand this claim. ATL is part of every version of
>> Visual Studio that includes VC++.
>
> Not so. It is not in Visual Studio Express 2005 yet that includes the
> C++ compiler.
> Nor is MFC.
>
> Stephen Howe

We are in a purely semantic argument here. I agree that no Express Edition
includes ATL and MFC and have said so previously in this thread. My
reference to Visual Studio in the passage you quoted was not meant to
include the Express editions. This is because there is no single "Visual
Studio Express" product that incorporates VC++ Express, VC# Expresss and the
like in the way that Visual Studio Professional, say, incorporates VC++, VC#
etc. Thus "Visual Studio Express" is a marketing umbrella rather than an
actual product.

Let's be unambiguous shall we? In order to get ATL and MFC, you must get one
of the following three:

1. Visual Studio Standard
2. Visual Studio Professional
3. Visual Studio Team System (which comes in several versions)


Visual Studio for Office does *not* include ATL/MFC because it does not
include VC++.

--
John Carson