If you dynamically link your application to the MFC library, you will, at a minimum, need to redistribute Mfc80.dll and Msvcr80.dll with corresponding manifest files for MFC and CRT assemblies. For more information on Visual C++ Assemblies and the DLLs that are part of them, see . All MFC DLLs use the shared version of the C run-time library (CRT); thus, Msvcr80.dll is required.
Mfc80.dll does not need to be redistributed with MFC applications if you statically link to the MFC DLL (that is, if you specified Use MFC in a Static Library on the General tab in the Project Settings dialog box). Even though this may work for testing and internal deployment of your applications, it is not a recommended way to redistribute MFC. For more information on the recommended solution for deploying Visual C++ libraries, see Choosing a Deployment Method.
If your application uses the MFC classes implementing the WebBrowser control (for example, or ), Microsoft Internet Explorer 4.0 or later must be installed on the target computer. Installing the latest version of Internet Explorer also ensures that the target computer has the latest common control files. Information about installing minimal Internet Explorer components is available in Knowledge Base article Q185375, HOWTO: Create a Single EXE Install of Internet Explorer ().
If your application uses the MFC database classes, such as and , you need to redistribute ODBC and any ODBC drivers that your application uses. For more information, see Redistributing Database Support Files.
If you redistribute an MFC DLL, be sure you redistribute the retail version rather than the debug version. Debug versions of the DLLs are not redistributable. Debug versions of the MFC DLLs have a trailing "d" in their file names, as in Mfc80d.dll.
If you modify MFC sources in any way and rebuild the MFC DLL, you must rename the modified MFC DLL so it will not conflict with the MFC DLL from Visual Studio. Rebuilding and renaming the MFC DLL is not a recommended procedure. For more information, see MFC Technical Note 33.
You may redistribute MFC by using either merge modules that are installed with Visual Studio or by deploying the MFC assembly in a sub-folder of your application-local folder as a private assembly. For more information about redistributing MFC, see Redistributing Visual C++ Files.
Installation of Localized MFC Components
If you decide to localize your application's use of the MFC resources by installing an MFC80 localization DLL, follow the instructions in this topic. Like other shared DLLs, an MFC localization DLL should be installed only if its version is newer than the version that is already installed. Therefore, installing this DLL is similar to installing the other DLLs. For more information, see Version Checking of Redistributable Files.
There are several MFC DLLs supplied for various locales. For example, MFC80deu.dll is the German version and contains version information that identifies it as the German locale. If you install any locale DLL, you must ensure that the locale for which the DLL is intended matches the locale of the installed Windows system. When you install the DLL, you must rename it to MFC80loc.dll.
Visual C++ provides two merge modules related to localization:
MFC_LOC_E.msm, which contains the localization DLLs for the European versions.
MFC_LOC_FE.msm, which contains the localization DLLs for the Asian versions.
When you use one of these merge modules with an appropriate installer that supports merge modules, it identifies and installs the appropriate localized version of the DLL in the target system and renames it to MFC80loc.dll.
You should never install an MFC80loc.dll on an English system. English resources are built into MFC80.dll, and it is faster to load them from that DLL instead of searching (and loading) an MFC localization DLL first.
For more information about localizing MFC applications, see MFC Technical Note 57 and Knowledge Base article Q208983, "How to: Using MFC LOC DLLs" (
You may redistribute MFC localized DLLs by deploying the MFC assembly in your application-local folder as a private assembly. For more information about redistributing Visual C++ libraries as private assemblies, see Redistributing Visual C++ Files.