/MAP:FULL Provides Translation of C++ Decorated Names

Last reviewed: July 17, 1997
Article ID: Q84319
5.30 5.31.009 5.50 5.60 | 5.31
MS-DOS                  | OS/2
kbtool

The information in this article applies to:

  • Microsoft LINK for MS-DOS, versions 5.3, 5.31.009, 5.5, and 5.6
  • Microsoft LINK for OS/2, version 5.31

SUMMARY

When LINK versions 5.3 and later process a file created with Microsoft C/C++, the map file may contain decorated symbol names if the LINK command line includes the /MAP or /MAP:ADDRESS options. To create a map file that includes a translation of the decorated names, specify the /MAP:FULL option.

MORE INFORMATION

In the map file undecorated symbols appear with explicit qualifications, even though default values were used in the original source code. The C++ compiler determines the values for the explicit qualifiers. For example, the following declaration is part of the HELLO.H file in the C/C++ version 7.0 Microsoft Foundation Classes (MFC) Samples directory:

    CMainWindow:public CFrameWnd
    {
        public:
                CMainWindow();
        ...
    }

The decorated name for the CMainWindow constructor is as follows:

   ??0CMainWindow@@QAC@XZ

The following undecorated name also appears in the map file if the LINK command line includes the /MAP:FULL option:

   public:__near __pascal CMainWindow::CMainWindow(void)__near

Based on the memory model used to build the application, the compiler gave this constructor the __near and __pascal attributes. The __near declaration at the end of the undecorated name represents the qualification for the "this" pointer. In Microsoft C++, the "this" pointer for a non-static member function can be qualified. Because a static member function does not receive a "this" pointer, it does not have a "this" pointer qualifier. For more information, refer to Appendix B in the Microsoft C/C++ "Environment and Tools" manual for version 7.0.


Additional reference words: kbinf 5.30 5.31.009 5.50 5.60 LinkIss
KBCategory: kbtool
KBSubcategory: LinkIss
Keywords : kb16bitonly
Technology : kbMfc


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 17, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.