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

Unicode in MFC 

MFC supports the Unicode standard for encoding wide characters on Windows NT, Windows 2000, and Windows XP platforms. Unicode applications cannot run on Windows 98 platforms.


The Unicode versions of the MFC libraries are not copied to your hard drive unless you select them during a Custom installation. They are not copied during other types of installation. If you attempt to build or run an MFC Unicode application without the MFC Unicode files, you may get errors.


To copy the files to your hard drive, rerun Setup and click Add/Remove Features. Expand the feature tree Language Tools, then Visual C++, then Visual C++ Class & Template Libraries, and select both ATL MFC Shared Libraries Unicode and ATL MFC Static Libraries Unicode.

The Unicode versions of the MFC libraries are described below:

Static Link Libraries
Release Debug Description

UAFXCW.lib, .pdb

UAFXCWD.lib, .pdb

Unicode MFC static link library

Dynamic-Link Libraries
Release Debug Description

MFC80U.lib, .dbg, def, .dll, .map, .pdb, .prf

MFC80UD.lib, .def, .dll, .map, .pdb

Unicode MFC import library (see notes below for explanation of file extensions)


MFCD80UD.lib, .def, .dll, .map, .pdb

Unicode MFC import library for database


MFCN80UD.lib, .def, .dll, .map, .pdb

Unicode MFC import library for network (sockets)


MFCO80UD.lib, .def, .dll, .map, .pdb

Unicode MFC DLL for Active technologies

MFCS80U.lib, .pdb

MFCS80UD.lib, .pdb

Unicode MFC import library containing code that must be statically linked in an application or DLL

File Types

  • Import library files have the extension (.lib).

  • Dynamic-link library files have the extension (.dll).

  • Module definition (.def) files are text files that contain statements for defining an .exe or .dll.

  • Map (.map) files are text files that contain information that the linker uses when linking a program.

  • Library (.lib) files are used in conjunction with the DLL versions of MFC. These files contain code that must be statically linked in the application or DLL.

  • Program database (.pdb) files contain debugging and project state information.

  • Debug (.dbg) files contain information (COFF FPO, and CodeView) that the Visual C++ Debugger uses.

For detailed information on naming conventions, see Naming Conventions for MFC DLLs and Library Naming Conventions.

For information on using Unicode with MFC, see International Programming and Strings: Unicode and Multibyte Character Set (MBCS) Support.

See Also


General MFC Topics

Other Resources

MFC Concepts

© 2016 Microsoft