Microsoft KB Archive/326922

From BetaArchive Wiki
Knowledge Base


Redistribution of the shared C runtime component in Visual C++ 2005 and in Visual C++ .NET

Article ID: 326922

Article Last Modified on 5/17/2007



APPLIES TO

  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition



This article was previously published under Q326922

SUMMARY

When you build an application in Microsoft Visual Studio 2005 or in Microsoft Visual Studio .NET , and the application uses the C run-time libraries (CRT), distribute the appropriate CRT DLL from the following list with your application and install the DLL in your Program Files directory:

  • Msvcr80.dll for Microsoft Visual C++ 2005
  • Msvcr71.dll for Microsoft Visual C++ .NET 2003 with the Microsoft .NET Framework 1.1
  • Msvcr70.dll for Microsoft Visual C++ .NET 2002 with the Microsoft .NET Framework 1.0

Do this instead of installing the DLL in the system directories. Do not assume that the DLL already exists in the system directories.

MORE INFORMATION

The shared CRT DLL has been distributed by Microsoft in the past as a shared system component. This may cause problems when you run applications that are linked to a different version of the CRT on computers that do not have the correct versions of the CRT DLL installed. This is commonly referred to as the "DLL Conflict" problem.

To address this issue, the CRT DLL is no longer considered a system file, therefore, distribute the CRT DLL with any application that relies on it. Because it is no longer a system component, install it in your applications Program Files directory with other application-specific code. This prevents your application from using other versions of the CRT library that may be installed on the system paths.

Visual C++ 2005 or Visual C++ .NET installs the CRT DLL in the System32 directory on a development system. This is installed as a convenience for the developer. Otherwise, all projects that are built with Visual C++ 2005 or Visual C++ .NET that link with the shared CRT require a copy of the DLL in the build directory for debugging and execution.

When you distribute applications that require the Shared CRT library in the CRT DLL, we recommend that you use the VC_CRT.msm merge module that is included with Visual C++ 2005 or with Visual C++ .NET instead of directly distributing the DLL file.

REFERENCES

For more information, visit the following Microsoft Developer Network (MSDN) Web site:


Additional query words: DLL Hell

Keywords: kbinfo KB326922