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

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:

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

Last Reviewed: July 18, 1997