Article: Q170530
Product(s): Microsoft C Compiler
Version(s): winnt:5.0
Operating System(s): 
Keyword(s): kbcode kberrmsg kbtool kbwizard kbMFC kbVC500bug kbVC600fix kbGrpDSTools kbNoUpdate
Last Modified: 17-JUL-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- The AppWizard, used with:
   - Microsoft Visual C++, 32-bit Enterprise Edition, version 5.0 
   - Microsoft Visual C++, 32-bit Professional Edition, version 5.0 
-------------------------------------------------------------------------------
SYMPTOMS
========
When you build an AppWizard-generated project, the resource compiler reports the
following error if the default code page is anything other than 1252 (for
example, you have an Eastern European or Asian system locale):
  <project\project.rc>(118) : fatal error RC1015: cannot open include
  file
  'res\\XXXXXXX.rc2'.
This error only occurs when the project name contains characters greater than
0x7F hex.
CAUSE
=====
The Resource Script for the project that AppWizard generates is hard-coded to
specify the code page as 1252 and the language as US English. When the Resource
Compiler attempts to load an .rc2 file with a name that has characters greater
than 0x7F hex, but the code page 1252 has been specified, the Resource Compiler
will not be able to open the .rc2 file.
RESOLUTION
==========
To work around this problem, do the following in the project's .rc file:
- Replace all references to code_page(1252) with the proper code_page.
- Replace all references to "Language 9,1" with the proper language,
  sub-language code pair.
There are three places in a typical .rc file to change these values:
1. In the TEXTINCLUDE section, TEXTINCLUDE 3 has a reference to the code_page
  and Language:
        3 TEXTINCLUDE DISCARDABLE
        BEGIN
            "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
            "#define _AFX_NO_OLE_RESOURCES\r\n"
            "#define _AFX_NO_TRACKER_RESOURCES\r\n"
            "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
           "\r\n"
           "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
           "#ifdef _WIN32\r\n"
           "LANGUAGE 9, 1\r\n"
           "#pragma code_page(1252)\r\n"
           "#endif\r\n"
           "#include ""res\\appwizdll.rc2"" // Non-Microsoft Visual C++
                                            // edited.
                "\r\n"
           "#include ""afxres.rc""    // Standard components\r\n"
           "#endif"
            "\0"
        END
2. Immediately after the TEXTINCLUDE section, a set of preprocessor definitions
  has a reference to the code_page and Language:
        #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
        #ifdef _WIN32
        LANGUAGE 9, 1
        #pragma code_page(1252)
        #endif
3. At the end of the .rc file, there is a last set of preprocessor definitions
  with a reference to the code_page and Language:
        #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
        #ifdef _WIN32
        LANGUAGE 9, 1
        #pragma code_page(1252)
        #endif
        #include "res\\appwizdll.rc2"  // Non-Microsoft Visual C++ edited
                                       // resources.
        #include "afxres.rc"    // Standard components
        #endif
To make these changes, open the project's .rc file clicking Open on the File menu
and selecting Open As type of "Text" instead of "Auto." Visual C++ will close
the resource editor if it is open for this project.
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article. This problem was corrected in Microsoft Visual C++,
version 6.0.
(c) Microsoft Corporation 1999, All Rights Reserved.
Contributions by Jason Strayer, Microsoft Corporation
Additional query words:
======================================================================
Keywords          : kbcode kberrmsg kbtool kbwizard kbMFC kbVC500bug kbVC600fix kbGrpDSTools kbNoUpdate 
Technology        : kbVCsearch kbAudDeveloper kbAppWizard
Version           : winnt:5.0
Issue type        : kbbug
Solution Type     : kbfix
=============================================================================