Microsoft KB Archive/50524

From BetaArchive Wiki

C Run-Time Routines Cannot Be Placed in an Overlay


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: - Microsoft C for MS-DOS, versions 5.1, 6.0, 6.0a, and 6.0ax - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5 ---------------------------------------------------------------------- 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
Issue type :
Technology : kbVCsearch kbAudDeveloper kbPTProdChange kbvc150 kbvc100 kbCCompSearch kbZNotKeyword3 kbCComp510DOS kbCComp600DOS kbCComp600aDOS kbCComp600axDOS kbCVC700DOS

Last Reviewed: May 6, 2001
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.