Documentation Clarification for MOVE Overlays

ID: Q117680

7.00 | 1.00 1.50 MS-DOS | WINDOWS kbtool kbdocerr

The information in this article applies to:

SUMMARY

The documentation in the Visual C++ "Command-Line Utilities User's Guide" (both in hard copy and Books Online) and the C/C++ version 7.0 "Environment and Tools" contains potentially misleading information about segment-level overlays and function-level overlays.

MORE INFORMATION

The following paragraph is from page 145 of "Command-Line Utilities User's Guide" (and page 599 of "Environment and Tools"):

   ANONYMOUS ALLOCATION
   --------------------

   A function not explicitly allocated to a segment is sometimes
   referred to as an anonymous function. In programs compiled in
   medium and large models, anonymous functions are allocated to
   a segment that has a name in the form :

      objfile_TEXT

   where objfile is the name of the object file containing the
   functions.

In the medium- and large-memory models, the default naming convention used by the compiler for each segment is OBJFILE_TEXT. When an object file is created, the compiler puts OBJFILE_TEXT in the object file, which is used by the linker to create an MS-DOS overlay program.

NOTE: OBJFILE is in uppercase, because the linker is case sensitive. Also note that the /Gy compiler option is incompatible with ANONYMOUS ALLOCATION.

On page 147 of "Command-Line Utilities User's Guide" (and page 601 of "Environment and Tools"), there is a paragraph discussing function level overlays :

   THE FUNCTIONS AND SEGMENTS STATEMENTS
   -------------------------------------
   ......

   To place individual functions into an overlay, use the FUNCTIONS
   statement specified with an overlay number. The functions must
   be compiled as packaged functions. The following statement places
   three functions into the second overlay :

      FUNCTIONS:2 myfunc1 myfunc2 myfunc3

The function names "myfunc1", "myfunc2", and "myfunc3" conform to the calling and naming conventions specified in the source code. For example, the name of each __cdecl function has an underscore prepended to it and its case is preserved. By default, each function in a C program is declared with __cdecl. The name of each __fortran or __pascal function is converted to uppercase letters. For a C++ program, the function names used in the .DEF file should be the fully decorated names.

REFERENCES

For additional information on creating overlaid MS-DOS programs, please see the following articles in the Microsoft Knowledge Base:

   ARTICLE-ID: Q87938
   TITLE:      Assigning Functions to Overlays Using MOVE

   ARTICLE-ID: Q87926
   TITLE:      Assigning Code Segments to Overlays Using MOVE

Additional reference words: 7.00 1.00 1.50 KBCategory: kbtool kbdocerr visualc KBSubcategory: MoveOverlay
Keywords          : kb16bitonly MoveOverlay 
Version           : 7.00   | 1.00 1.50
Platform          : MS-DOS WINDOWS

Last Reviewed: July 20, 1997