Sign in to follow this  
catch

Should I switch to VC 2005 Express?

Recommended Posts

Well, it's free. Currently I'm using VC 2003, the full sha-bang. Was given to me by a guy who works at a gaming company, they all upgraded to full 2005 and so he was going to throw it away, so he let me have it. Is the express version seriously gimped? Anything to keep 2003 full for? I only develop in C++, so I don't even care about the IDE crud.

Share this post


Link to post
Share on other sites
Quote:

Is the express version seriously gimped?

Express has no resource editor (but it can still compile .rc scripts, which aren't that hard to edit manually) and cannot accept add-ins like VAX. If that doesn't matter, upgrade, as you'll get some compiler bugfixes and standards-compliance-improvements.

Share this post


Link to post
Share on other sites
You'll need to download the 400Mb platform SDK to actually use it for something meaningful, though.

I hate that about MSVC express. MingW with the IDE of your choice has full functionality and is a download of about 25 MB. What the heck did MS put in the platform SDK to make it so insanely bloated? And why didn't they include the libs and headers needed for Win32 programming by default?

Share this post


Link to post
Share on other sites
Quote:

You'll need to download the 400Mb platform SDK to actually use it for something meaningful, though.

This is true, unless you want to do only standard C++ stuff (the SC++L and such are included in the VC++ Express package).

Quote:

What the heck did MS put in the platform SDK to make it so insanely bloated?

Everything in the Platform SDK, plus a bunch of documentation, supporting tools, and so on. GCC and MinGW actually do not have full functionality, they just have common functionality. Among other things, GCC (mingw) expects a different binary format for its libraries and understands different preprocessor directives; it's not (last I checked) compatible at all with the actual Platform SDK -- similarly the recent official DX SDKs are unsupported. So what you get with (for example), the vanilla Dev-C++ download are modified versions of the basic functionality (headers and libraries).

So, there is a lot of the more advanced functionality missing, although its likely easy enough to add (the libraries will be, for the most part, just import stubs). It would be nice to see a slimmer version of the PSDK that supported only bare-bones Win32 development without any of the extra supporting material, perhaps (although I've found most of that invaluable and I don't mind the extra bandwidth for the download), but I suspect its would take a pretty big re-engineering effort. I mean, have you looked at some of those headers? O_o

Quote:

And why didn't they include the libs and headers needed for Win32 programming by default?

Probably because the Express SKUs are primarily targeted towards new and hobby developers, who don't necessary need the Platform SDK to begin with. Plus, it's a pretty safe bet for that every person who holds your view of the situation (that the omission of the PSDK is a Bad Thing) there is another person who would hold an opposite view (that including the PSDK is a Bad Thing because it makes the Express download 400+ MB for a bunch of "crap they don't need."). So, those issues being equal, they may as well cater the thing to their target market as much as possible.

EDIT: Hm, poking around suggests that perhaps the library formats are not different, and it's only the headers and preprocessor/compiler extensions that matter. I haven't looked into this in a while, so I'll report back with anything else I find.

[Edited by - jpetrie on July 10, 2007 12:10:45 PM]

Share this post


Link to post
Share on other sites
What is SC++L? Do you mean STL, the standard template library? Or libc?

Quote:
GCC and MinGW actually do not have full functionality, they just have common functionality. Among other things, GCC (mingw) expects a different binary format for its libraries and understands different preprocessor directives; it's not (last I checked) compatible at all with the actual Platform SDK -- similarly the recent official DX SDKs are unsupported. So what you get with (for example), the vanilla Dev-C++ download are modified versions of the basic functionality (headers and libraries).

Sure, GCC libs are not compatible with MSVC libs, among other things. That does not change the fact that MingW is a full-featured compiler. It includes the libs and headers needed for most stuff you'll need (not sure about DX, though). MSVC express is several times larger and still doesn't offer anything other than extremely bare-bones C++ functionality, and adding any sort of platform support requires the huge platform SDK. It's insane.

Quote:
Probably because the Express SKUs are primarily targeted towards new and hobby developers, who don't necessary need the Platform SDK to begin with.

Hobby developers might not need the platform SDK, but anyone who wants to do more than "Hello world!" type apps do need at the very least WinAPI functionality.
Quote:
Plus, it's a pretty safe bet for that every person who holds your view of the situation (that the omission of the PSDK is a Bad Thing) there is another person who would hold an opposite view (that including the PSDK is a Bad Thing because it makes the Express download 400+ MB for a bunch of "crap they don't need."). So, those issues being equal, they may as well cater the thing to their target market as much as possible.

That's beside the point. I don't mind having all that ATL or MFC or DX stuff as optional downloads; none of that is needed to implement an arbitrarily featured program (though some of it will make it easier). Things such as WinAPI support, however, is critical, and should not be more than a few megs at the most.

Share this post


Link to post
Share on other sites
Quote:

What is SC++L? Do you mean STL, the standard template library? Or libc?

SC++L is "Standard C++ Library," it is for all intents and purposes the same as "STL," although the former is more (pedantically) correct when referring to the library that is described by the C++ Standard (STL was a SGI thing, most of which was incorporated into the C++ spec as standard). Although if you want to be really obnoxiously pedantic, I think the standard only refers to its library as the "C++ Standard Library." Although I have not read that section in nearly as much detail, as its boring, and I have no desire to dig through it to see how consistent it is in referring to itself.

The actual STL itself can be generally viewed as a subset of the full standard library. Not much really changed.

Share this post


Link to post
Share on other sites
Don't care about a puny 400 mb download. Moot point.

I never use the resource editor. I don't have any installed add ins, never really installed any, so I guess it doesn't matter.

If that's the only major difference, I guess I see no reason why I shouldn't upgrade to 2005.

Share this post


Link to post
Share on other sites
Also - although this might just be me being blind - I can't seem to find a way to execute project files from with the MSVC 2005 IDE. I have to open a separate explorer window to do that, which I find to be very annoying.

Share this post


Link to post
Share on other sites
Quote:

Also - although this might just be me being blind - I can't seem to find a way to execute project files from with the MSVC 2005 IDE. I have to open a separate explorer window to do that, which I find to be very annoying.

Execute project files? You mean build and run the code? "Start" and "Start Without Debugging" under the Debug menu (or perhaps the Project menu? I don't recall offhand and I don't have VS installed here) should do it.

Share this post


Link to post
Share on other sites
Gah! "Start without debugging" under the "Debugging" tab is correct. How silly. It's been under the "Build" menu in all previous incarnations of MSVC and every other IDE I know of, but of course they had to change it. Ah well, now that you've shown me where to find it, I'm happy.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this