In visual c++ 2003 to visual c++ 2005 are there any major changes,Are there any Syntax changes i know there has to be,and would the 2005 version be worth the money?

Dani AI

Generated

Short practical guide (complements the replies from , and others).

If moving from VC++ 2003 to VC++ 2005: most native (ANSI/TCHAR-based) C++ compiles with only minor changes, but a few project-level defaults and the runtime model changed and those will bite if not handled deliberately. Treat the upgrade as a small project: back up your solutions, test builds on a staging machine, and keep the old toolset installed side‑by‑side while you validate behavior. (flylib.com)

Quick migration checklist you can apply immediately:

  • Open the solution in VS2005 and let the Conversion/Upgrade Wizard run (it can produce a conversion report and backup copies). (flylib.com)
  • If you do not want to convert every file to wide characters, set Project → Properties → Configuration Properties → General → Character Set = "Use Multi‑Byte Character Set" (this keeps TCHAR as char). (ucancode.net)
  • For managed/CLI code: you can temporarily compile old Managed C++ with the compatibility switch and then port to C++/CLI; plan that port rather than a quick find/replace. (C++/CLI is the VS2005 direction.)

If Visual Studio shows "Automation server cannot create object" when creating projects, try these targeted repairs from an elevated Visual Studio Command Prompt (close all VS instances first):

devenv /setup
devenv /installvstemplates
regsvr32 "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectAggregator.dll"
regsvr32 scrrun.dll   (if script/FileSystemObject errors appear)

Rebuilding the template cache and forcing VS to refresh packages fixes most template/automation errors; re‑registering the IDE package DLL shown above addresses the "project type not supported" class of failures. (ericsowell.com)

Caveat for deployment: VC++ 2005 changed the CRT to side‑by‑side assemblies (MSVCR80, manifests). That affects runtime redistribution and binary compatibility—either ship the VC2005 redistributable or link the CRT statically for the app build configuration you deploy. Test the produced EXEs on clean machines. (learn.microsoft.com)

These steps fill gaps in the thread: how to avoid wholesale Unicode conversions, how to repair the IDE when template creation fails, and what to watch for when shipping upgraded binaries.

Recommended Answers

All 17 Replies

VC2005 is free to download and yes it's much better than VC2003.

Re: Syntax....
Maybe we can answer your question and mine at the same time.

I am a total neophyte, but I am toying with a program that has a caveat, "When using VS2005, MS is pushing wide strings. Convert char stuff to WCHAR and put an L in front of all the constants, like this: L'Hello, world.'"

This is all pretty much greek to me, but maybe a power hitter can enlighten us.

Re: Syntax....
Maybe we can answer your question and mine at the same time.

I am a total neophyte, but I am toying with a program that has a caveat, "When using VS2005, MS is pushing wide strings. Convert char stuff to WCHAR and put an L in front of all the constants, like this: L'Hello, world.'"

This is all pretty much greek to me, but maybe a power hitter can enlighten us.

That is because unlike the previous versions of Visual Studio, VS2005 is unicode enabled by default. In Windows, to differentiate between Wide char and the normal one byte char, you have to put the L modifier in from of it. So "Hello World" will take 12 bytes, and L"Hello World" will take 24 bytes.
Read more.

As for the OP's question

In visual c++ 2003 to visual c++ 2005 are there any major changes,Are there any Syntax changes i know there has to be,and would the 2005 version be worth the money?

No major changes in the Graphical IDE. If you are familiar with the VS2002, VS2003 , there are few places where you get surprised.
As for syntax changes, I tried the Professional Version for some time, and the major irritation was that the use of functions like strncpy has been deprecated in favour of microsoft specific functions like strncpy_s. So you may get a lot of compiler warnings saying this and that is deprecated, blah blah blah. Of course you can turn if off with a specific preprocessor switch _CRT_SECURE_NO_DEPRECATE . I personally do not like this compiler specific code, but since I don't know the internals of the C/C++ standard implementations, I am not in a position to say where the old strncpy functions have gone wrong. But other than this, I do not see any significant changes. Anyway this is significant enough. Also these new functions have been submitted for consideration to the C/C++ committees so they MAY get included in the standards.
For the time being, unless you are going to download the free version, I do not see any point of upgrading to VS2005 in a hurry. 2003 should be enough since it is very much standard compliant than the pervious versions. But if you have the bandwidth and curiosity, try the free version by all means.

You guys know a retail store were i could buy visual c++ 2005 or from microsoft website use to sell the visual c++ 2003 but they dont anymore.

Why do you want to buy it when it can be downloaded for free?

Why do you want to buy it when it can be downloaded for free?

well i downloaded the 30 day trial before this when i was just learning c++ i used it once and let it sit,then when i need to use it oops the trial is expired.

No. There is no issue like that with Visual Studio 2005 Express Edition. It is completely free for as long as you want to use it. Earlier it was only for a one year period and the licence expired after an year. But now they have decided to give this edition for free. See this.

Effective April 19th, 2006, all Visual Studio 2005 Express Editions are free permanently. This pricing covers all Visual Studio 2005 Express Editions including Visual Basic, Visual C#, Visual C++, Visual J#, and Visual Web Developer as well as all localized versions of Visual Studio Express.
SQL Server 2005 Express Edition has always been and will continue to be a free download.

See how nice Big Bro Bill is?

A major difference that hasn't been noted (unless I just missed it) is that 2005 uses C++/CLI for .NET programming, whereas 2003 uses the older managed extensions for C++. Just to clarify, C++/CLI is essentially its own language, though it is based on C++.

Also, all the express versions are specific to a single language, whereas non-free versions of visual studio integrate multiple languages, and they also include some other tools. Check out the product comparisons.

No. There is no issue like that with Visual Studio 2005 Express Edition. It is completely free for as long as you want to use it. Earlier it was only for a one year period and the licence expired after an year. But now they have decided to give this edition for free. See this.
See how nice Big Bro Bill is?

WOW :eek: iam downloading all of them lol

As for syntax changes, I tried the Professional Version for some time, and the major irritation was that the use of functions like strncpy has been deprecated in favour of microsoft specific functions like strncpy_s. So you may get a lot of compiler warnings saying this and that is deprecated, blah blah blah. Of course you can turn if off with a specific preprocessor switch

Leave it to M$ to depricate standard functions in lieu of their own functions. Whether their reasoning is sound is immaterial. They should not ignore the standards because they don't like them.

I personally do not like this compiler specific code...

I despise this "compiler specific code" because of the arrogance. They can add the functions -- no problem there -- but to deprecate the Standard takes it too far.

but since I don't know the internals of the C/C++ standard implementations, I am not in a position to say where the old strncpy functions have gone wrong.

The problem with the string functions is they make it easy to overflow your string buffer. In some ways they are as dangerous as gets() and scanf("%s"...), but they are under control of the programmer, not the user. Any programmer worth his salt can handle this without difficulty.

commented: Nicely Said +1

ok i have a problem with visual c++ whenever i try to create a project it says "automation server cannot create object".anybody know what that means?

ok i have a problem with visual c++ whenever i try to create a project it says "automation server cannot create object".anybody know what that means?

No. What type of project are you trying to create?

Edit:
Googling gave me .

it gives that error on every project except a win32 console project

I posted a link a bit later in my earlier solution. Check it out and see if the error can be corrected.

Why do you want to buy it when it can be downloaded for free?

visual c++ is great

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.