Microsoft KB Archive/23905

{|
 * width="100%"|

PRB: Linking Small Object File Produces Memory-Hungry TSR

 * }

Q23905

6.00 6.00a 6.00ax 7.00 | 1.00 1.50 1.51 1.52 MS-DOS | WINDOWS kbtool kbprb -- The information in this article applies to: - Microsoft C for MS-DOS, versions 6.0, 6.0a, and 6.0ax - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, version 1.0, 1.5, 1.51, and 1.52 -- SYMPTOMS ======== An attempt to link an application that contains a small amount of code and data into a terminate-and-stay-resident (TSR) program produces a large executable file. For example, linking an object module that contains 2K of code and 4K of data produces an executable file that consumes 70K at run time. CAUSE ===== By default, the linker specifies that an application requests all memory available in the system when the application runs. RESOLUTION ========== There are two methods to address this situation: - Modify the compiler command line to specify the /CP compiler option switch and specify the amount of memory that the TSR requires. The /CP:1 option requests the minimum memory allocation. - Use the EXEMOD utility /max parameter to adjust the maximum amount of memory the program allocates. MORE INFORMATION ================ Microsoft C was not designed to produce memory-resident software. It may be necessary to modify the application start-up code. Use care when deciding which run-time library functions and MS-DOS functions the TSR calls. Additional reference words: 6.00 6.00a 6.00ax 7.00 1.00 1.50 1.51 1.52 DGROUP 64K KBCategory: kbtool kbprb KBSubcategory: LinkIss

Keywords : kb16bitonly

Issue type :

Technology : kbVCsearch kbAudDeveloper kbPTProdChange kbvc150 kbvc100 kbCCompSearch kbZNotKeyword3 kbCComp600DOS kbCComp600aDOS kbCComp600axDOS kbCVC700DOS kbVC151 kbVC152