Unicode or Multi Byte Visual C++ Application

This post provides information about using Non English Language Text in Graphical User Interface of Visual C++ based Applications. In this post, we are going to modify the Dialog Based Application Example created in earlier post titled Dialog Based MFC Application to have an Edit Box as displayed below.

MFC Dialog Based Application With Edit Box

MFC Dialog Based Application With Edit Box

Now all you need to understand Unicode or Multi Byte Character Set Configuration in Visual C++ Projects is build and run the application. Yes this example does not requires any coding. Now when the Dialog Based Application with an Edit Box is running, enter some Non English Text in the Edit Box and verify that you can see non English characters in the edit box. Now let’s say you do not wish to support entering Non English Text in your Dialog based or any other type of application created with Visual C++, open up Project Settings and change the Character Set of the Application to Multi Byte Character Set as displayed in the screenshot below.

Modify Character Set of a Visual C++ Application

Modify Character Set of a Visual C++ Application

Now build your MFC Dialog based Application again and run it. In order to verify whether your application supports non English text or not, enter non English text in the edit box again. As the character set has been configured to be Multi Byte Character Set now, it will not recognize non English text and will displays only question marks as displayed below.

Multi Byte Dialog Based Visual C++ Application

Multi Byte Dialog Based Visual C++ Application

By following this example tutorial, you can understand how to configure your Visual C++ Application to optionally recognize non English text. By simply modifying the Character Set from the Project Properties, you also modify whether Unicode or Multi Byte Microsoft Foundation Libraries are used. You can check or verify whether an application is using Multi Byte or Unicode version of MFC libraries using the Dependency Walker as outlined in the Checking Dll Files for MFC based Application post.