Re: VC6 + Dinkumware fixes OK for basic STL usage?
P.J. Plauger wrote:
I assume that you can get the binaries for each of the compilers VC6,
VC7.1, VC8 ? (I don't care about VC7, not many do.)
IIRC, we include all these binaries in our $200 binary product. Not
sure, after all these months, what's in the V-express package. But
the headers certainly adapt to all compilers.
But what is in these binaries? When I got the VC6 patches, I noted a
warning on the site that there could be a problem with dynamic linking
because MSVCP60.DLL contained the unpatched versions. Since I use static
linking, I didn't worry about it, assuming that there were not
corresponding static libraries in the static linking case. Was this wrong?
No, that's correct. If you just patch the Microsoft-supplied headers,
you're still at the mercy of the DLLs and/or static libraries. For
some reason, Microsoft has never published a way to rebuild the DLLs
in the field. Since many of the bugs have been captured in DLL code,
you're outa luck.
In our case, we supply DLLs and binary libraries that supercede
Microsoft stuff, so we can supply fixed versions.
If binaries for static linking of V-express are required, why do you not
provide them?
They're not required. That's just one linking option.
And if I have to build them myself, where is the source to
build them from? In the VC distributions I see source for MFC and CRT, but
not for the C++ library.
You can license our source and build all sorts of configurations. But
the source is rather more expensive than the binaries. The idea behind
the V-express package was to give customers a cheap way to try out
our latest offering, including the most asked for part of TR1.
I guess I am a bit confused about these binaries :).
PJ:
I have to say that I am still confused:
1. From what you say, there IS a C++ static library in VC6 (what is its
name?), but that it is not affected by the patches. This is why I have
gotten away with just applying the patches in my static-linked programs.
OTOH, the dynamic linking DLL version would be changed by the patches
(because it contains std::string content, I believe), so it is a problem
(and one that cannot be solved because MS has never released how to
rebuild the DLL).
2. Are you saying that no libraries are required for static linking with
the V-express edition? Or that they are not "required" because you have
the option of dynamic linking? This is a show-stopper for me. It's like
Henry Ford's "You can get the car in any color you like, as long as it
is black". If you provide DLL's, why would you not provide also the
corresponding static libraries?
For $80 I would certainly buy this if I could do either static or
dynamic linking in each of VC6, VC7.1 and VC8. Otherwise, probably not.
I think the ability to use the V-express library with VC6 could be a big
selling point, because there are many applications (three of mine for
example) that are still maintained in VC6. But for me, it is only useful
if you can use static linking.
David Wilkinson