FIX: Return Value Not Ignored with NMAKE's Dash (-) Command

ID: Q122220


The information in this article applies to:
  • Microsoft Program Maintenance Utility (NMAKE), used with:
    • Microsoft Visual C++ for Windows, versions 1.5, 1.51
    • Microsoft Visual C++ 32-bit Edition, versions 1.0, 2.0


SYMPTOMS

When using the dash command (-) in a makefile to turn off error checking for a given command, return values that are greater than 255 will not be ignored. NMAKE will detect an error and the make process will be terminated, as shown below:

NMAKE : fatal error U1077: 'C:\WINDOWS\SYSTEM32\CMD.EXE' : return
code '0xYYY'
Stop.
YYY is the hexadecimal value of the return code from the command that generated the error.


RESOLUTION

Use the !CMDSWITCHES (+/-) I directive to work around this problem. For example:


   !CMDSWITCHES +I
   mylabel:
        mycommand
   !CMDSWITCHES -I 


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was fixed in Microsoft Visual C++, 32-bit Edition, version 4.0.


MORE INFORMATION

Sample Code

The following makefile will prematurely terminate after the mycommand statement if an error MYCOMMAND.EXE returns is a value greater that 255. A small MS-DOS- or Windows NT-based console program returning a value can be used as mycommand.

mylabel:
     -mycommand 

Additional query words: 1.50 1.51 1.00 2.00 buglist1.50 buglist1.51 buglist1.00 buglist2.00

Keywords :
Version : :1.0,1.5,1.51,2.0
Platform : NT WINDOWS
Issue type :


Last Reviewed: February 2, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.