Microsoft KB Archive/84319

{|
 * width="100%"|

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

 * }

Q84319

-

The information in this article applies to:


 * Microsoft LINK for MS-DOS
 * Microsoft LINK for OS/2

-

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 &quot;this&quot; pointer. In Microsoft C++, the &quot;this&quot; pointer for a non-static member function can be qualified. Because a static member function does not receive a &quot;this&quot; pointer, it does not have a &quot;this&quot; pointer qualifier. For more information, refer to Appendix B in the Microsoft C/C++ &quot;Environment and Tools&quot; manual for version 7.0.

Additional query words: kbinf 5.30 5.31.009 5.50 5.60 LinkIss

Keywords : kb16bitonly

Issue type :

Technology : kbAudDeveloper kbZNotKeyword3 kbLINKSearch