Naming Conventions for MFC DLLs
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Naming Conventions for MFC DLLs 

The DLLs and libraries included in MFC follow a structured naming convention. This makes it easier to know which DLL or library you should be using for which purpose.

The import libraries needed to build applications or extension DLLs that use these DLLs have the same base name as the DLL but have a .lib file name extension.

Shared DLL Naming Convention
DLL Description


MFC DLL, ANSI Release version


MFC DLL, Unicode Release version


MFC DLL, ANSI Debug version


MFC DLL, Unicode Debug version

If you are dynamically linking to the shared DLL version of MFC, whether it is from an application or from an extension DLL, you must include MFCx0.DLL with your product. If you require Unicode support in your application, include MFCx0U.DLL instead.


The MFCx0.DLL and MFCx0U.DLL Retail version of the DLLs contain Active technologies, database, and network support in a single DLL. The Debug version maintains separate DLLs for these functional areas.

If you are statically linking your DLL to MFC, you must link it with one of the static MFC libraries. These versions are named according to the convention [N|U]AFXCW[D].LIB. For more information, see the table "Static-Link Library Naming Conventions" in Library Naming Conventions (MFC).

For a list of Visual C++ DLLs that can be distributed with your applications, see Redist.txt in your Visual Studio installation.

What do you want to know more about?

See Also



© 2015 Microsoft