MBCS Error building MFC C++ project with Visual Studio
Asked Answered
F

3

21

I opened my existing MFC project using Visual Studio and when I build I get the following error message:

Error 1 error MSB8031: Use of MBCS encoding in MFC projects require an additional library to be downloaded and installed. Please see http://go.microsoft.com/fwlink/?LinkId=286820 for more information. C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Microsoft.CppBuild.targets

What is this about?

Fainthearted answered 26/10, 2013 at 6:28 Comment(0)
F
43

This error message is due to the missing MBCS MFC package. Starting with Visual Studio 2013, MBCS portion of the MFC library has been broken out of the Visual Studio product into its own separate download. Installing this package and rebuilding should fix the problem.

  • The download is available here
  • More information about this change is available here

Update for Visual Studio 2015

Starting with Visual Studio 2015, the entire MFC C++ library (including the MBCS pieces) is an optional install component. While installing VS2015, if you select C++ and MFC, you will also get the MBCS library.

Fainthearted answered 26/10, 2013 at 6:28 Comment(4)
When I install MFC MBCS package you linked above I got following error message "This product applies only to the MFC library, which is not present on this computer". I use VS 2013 Premium Update 3.Alinaaline
Do you have VS2013 installed on your machine?Fainthearted
In a meantime I solved the problem. The reason was that I didn't install MFC core libraries during Visual Studio installation so MBCS MFC package couldn't be installed because it needs MFC core libraries.Alinaaline
also migrating old MFC projects have been made easier with Visual Studio 2017 - consider upgradingMessuage
I
8

Instead of installing an add-on, you may consider changing the character set from MBCS to Unicode.

This is done in the project properties as is depicted below. project properties

Innominate answered 21/5, 2015 at 9:8 Comment(1)
That comes with a cost though. You might need to make code changes. But yes, long-term that is the right direction.Fainthearted
W
0

For Visual Studio 2015:

According to Redistributing the MFC Library article on MSDN, there are no mfc140.dll files in redist directory (c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86).

The mfc140.dll files were omitted from the redistributable files directory in Visual Studio 2015 RTM. You can use the versions installed by Visual Studio 2015 in the Windows\system32 and Windows\syswow64 directories instead.

Waits answered 17/3, 2017 at 15:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.