PRB: Linking Small Object File Produces Memory-Hungry TSR

Last reviewed: July 17, 1997
Article ID: 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


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 17, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.