Determining Which DLLs to Redistribute

The first step in determining which files you need to redistribute with your application is to clearly understand the dependencies of this application and collect a list of dependent DLLs by using, for example, Dependency Walker (depends.exe) as described in Understanding Dependencies of a Visual C++ Application.

As you use DUMPBIN or depends.exe to view your dependencies, use the file list in Redist.txt to see which of the DLLs that your application depends on are Microsoft-supplied DLLs that are part of Visual Studio. Redist.txt is located in the Program Files\Microsoft Visual Studio 2005 directory on the second Visual Studio 2005 product CD or on the DVD. Below is a list of Visual C++ files your application might depend on. However, only files specified in Redist.txt may be redistributed with your application. Note that debug versions of an application are not redistributable and that none of the debug versions of the various Visual C++ dynamic-link libraries (DLLs) are redistributable. For additional information, please see Choosing a Deployment Method.

Visual C++ Library

Description

Applies to

atl90.dll

Active Template Library (ATL).

Applications that use ATL.

msvcr90.dll

C Runtime Library (CRT) for native code.

Applications that use the C Run-Time Libraries.

msvcm90.dll

CRT and Standard C++ Library for managed and mixed code.

Applications that use the C Run-Time Libraries or Standard C++ Library and use the /clr (Common Language Runtime Compilation) compiler option.

msvcp90.dll

Standard C++ Library for native code.

Applications that use the Standard C++ Library.

mfc90.dll

Microsoft Foundation Classes (MFC) Library.

Applications that use the MFC Library.

mfc90u.dll

MFC Library with Unicode support.

Applications that use the MFC Library and require Unicode support.

mfcmifc90.dll

MFC Managed Interfaces Library.

Applications that use the MFC Library with Windows Forms Controls.

mfcm90.dll

MFC Managed Library.

Applications that use the MFC Library with Windows Forms Controls.

mfcm90u.dll

MFC Managed Library with Unicode support.

Applications that use the MFC Library with Windows Forms Controls and require Unicode support.

For additional information on how redistribute these DLLs with your application please see Redistributing Visual C++ Files. For examples, see Deployment Examples.

Normally, you should not need to redistribute system DLLs (for example, Kernel32.dll, User32.dll, Ole32.dll, or ShDocVW.dll) because these DLLs are part of the operating system and are present on any computer with the same version of the operating system installed. However, there might be exceptions, such as in the case where your application is going to run on several versions of Microsoft operating systems. Be sure to read the corresponding licensing agreements if you encounter such a need. If possible, try to get the system DLLs upgraded either through service packs or by small redistributable packages made available by Microsoft. You can search and identify any such available packages from the Knowledge Base articles in the MSDN Library or at https://support.microsoft.com.

See Also

Concepts

Choosing a Deployment Method

Other Resources

Deployment (C+)

Change History

Date

History

Reason

October 2008

Enhanced table.

Customer feedback.