Sunday, November 11, 2007

Distributing Visual C++ Applications

In recent years (and recent Visual Studio versions) Microsoft has unintentionally made it much harder to distribute C++ applications.

The reason for all the grief is a new dependency file MSVCR80.dll (Visual Studio 8.0/2005) or MSVCR90.dll (Visual Studio 9.0/2008). The DLL file handles initialization and cleanup of The C++ Standard Libraries among other things. If your swapping applications with another developer then you probably won't have a problem, but if you try to send your app to someone without the latest Visual Studio they're going to run into a nasty error message.

The solution Microsoft suggests for solving the problem they created is to wrap the Visual Studio redistributable in an installer. This is okay, but what if your program is too small to warrant an installer? Running a tutorials site, it doesn't make sense for users to have to install each demo application. My solution was to just compile under Visual C++ 6.0, which is arguably the best in the VC product line anyway.

References:
Deployment (C++)
http://msdn2.microsoft.com/en-us/library/zebw5zk9(VS.80).aspx

Visual Studio 2005+3

Microsoft is releasing the 2008 edition of their software development studio later this month so I decided to take a minute to download and review their public available beta.

There really isn't enough improvements from VS 2005 to warrant a new release. The user interface is the same. Intellisense still doesn't work well. The .Net Framework 3.5 doesn't add anything for a C++ native application programmer. In essence Visual Studio 2008 is nothing more than a Service Pack for Visual 2005.

References:
Release Date Announcement
http://www.microsoft.com/presspass/press/2007/nov07/11-05TechEdDevelopersPR.mspx
Visual Studio 2008 Feature Specifications
http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx