HOWTO: #include the Localized MFC Resources in an EXE or DLL

ID: Q198536


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), used with:
    • Microsoft Visual C++, 32-bit Editions, versions 4.0, 4.1, 4.2, 5.0, 6.0


SUMMARY

MFC provides resource files localized for certain locales, in the MFC\SRC\L.* and MFC\Include\L.* directories. This article describes how to modify the project settings and resource file to use these localized MFC resources.

NOTE: The information in this article does not apply to resources for ActiveX controls.


MORE INFORMATION

Steps to include the localized resources:

  1. On the Project menu, click Project Settings. In the Project Settings dialog box, select the Resource property page. Remove the _AFXDLL preprocessor definition. Click OK on the property sheet.


  2. Open the string table using the Resource Editor and remove all the non application-specific strings generated by AppWizard. For example, if this application is an AppWizard-generated application, remove all the entries for the IDs from ID_FILE_NEW to the end of the string table. Strings for IDR_MAINFRAME, IDR_MYPROJTYPE, AFX_IDS_APP_TITLE, and AFX_IDS_IDLEMESSAGE are application-specific, and therefore localized strings are not provided by the MFC resource files.


  3. On the View menu, click Resource Includes. In the Compile-time directives window, do the following:


    1. Set the primary language ID and the sub-language ID appropriately in the LANGUAGE statement. The appropriate values can be found in the ...\vc\include\winnt.h file. Note that the values specified in the LANGUAGE statement must be base-10. The values in Winnt.h are base-16.
      
      Example: LANUGAGE 11, 1  // Specifies standard French 


    2. Make sure that the code page specified in the #pragma code_page statement is correct. For ANSI English and most European languages the code page is 1252; for Japanese it is 932.


    3. Modify the existing statements that include resources used by the MFC framework. These resources are located in the appropriate localized ..\vc\mfc\include directory. For example, change the following


    4. 
               #include "afxres.rc"
               #include "afxprint.rc"
               #include "afxolecl.rc"
               #include "afxolesv.rc" 

      to the following:
      
               #include "l.fra/afxres.rc"
               #include "l.fra/afxprint.rc"
               #include "l.fra/afxolecl.rc"
               #include "l.fra/afxolesv.rc" 

      (A project will use the Afxolecl.rc and Afxolesv.rc files only if they are OLE client and/or server applications.)

    5. The Indicate.rc and Prompts.rc files contain the key-state indicators and menu-prompt strings that are displayed on the status bar by MFC. These files are located in the ..\vc\mfc\src directory. To include these files, #include them and explicitly specify their location. For example:
      
               #include "c:\VC\mfc\src\l.fra\prompts.rc"
               #include "c:\VC\mfc\src\l.fra\indicate.rc" 


    6. Click OK to close the Resource Includes dialog box.


  4. Build the application or DLL.



REFERENCES

Technical Note 23 "Standard MFC Resources"

For additional information, please see the following article in the Microsoft Knowledge Base:

Q200555 Localizing Stock ActiveX Property Pages With MFC Rescues

(c) Microsoft Corporation 1998, All Rights Reserved. Contributions by Isaac Varon, Microsoft Corporation.

Additional query words: kbDSupport

Keywords : kbIntl kbMFC kbResource kbVC400 kbVC410 kbVC420 kbVC500 kbVC600
Version : winnt:4.0,4.1,4.2,5.0,6.0
Platform : winnt
Issue type : kbhowto


Last Reviewed: October 4, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.