C Run-Time Routines Cannot Be Placed in an Overlay

ID: Q50524

5.10 6.00 6.00a 6.00ax 7.00 | 1.00 1.50

MS-DOS                      | WINDOWS
kbprg

The information in this article applies to:

The run-time routines for medium and large models (the only ones that overlays deal with) are compiled with /NT _TEXT. This puts all the routines in the same named segment. The linker cannot split a segment between the root and an overlay. Segmentation takes precedence over overlays. The linker constructs overlays from segments, not individual functions, unless function level linking is enabled in C/C++ version 7, or Visual C++ version 1.0.

The first request for the segment (in an .OBJ that goes in the root or in an overlay) determines where the linker will place the entire segment (root or overlay). If your extracted .OBJ is in the overlay, all the run time gets put into the overlay.

Consequently, the entry point of the overlay manager is put into the overlay and not in the root, so the overlay manager code (also in _TEXT) is not present in memory at startup. This causes the machine to hang.

Additional reference words: kbinf 1.00 1.50 6.00 6.00a 6.00ax 7.00 KBCategory: kbprg KBSubCategory: StaticOverlay Keywords : kb16bitonly

Last Reviewed: July 18, 1997