PRB: ml /D?WIN and CMACROS.INC Produce A2016 and A2008

ID: Q80117


The information in this article applies to:
  • Microsoft Macro Assembler for MS-DOS, versions 6.0, 6.0a, 6.0b
  • Microsoft Macro Assembler for OS/2, versions 6.0, 6.0a, 6.0b


SYMPTOMS

In the Microsoft Macro Assembler (MASM) version 6.0, when defining ?WIN on the command line and including CMACROS.INC, the following errors are generated:

cmacros.inc(77): error A2016: expression expected
cmacros.inc(118): error A2008: syntax error: ,


CAUSE

The command-line switch /D?WIN=1 is equivalent to ?WIN TEXTEQU <1>. CMACROS.INC is expecting that ?WIN = 1 will be used to indicate that Windows support is needed.


RESOLUTION

To correctly define ?WIN, do not assemble with /D?WIN=1 as a command line option; instead, use "?WIN = 1" in the source file before including CMACROS.INC.


MORE INFORMATION

The following examples demonstrate the incorrect and then the correct way to define ?WIN for use with CMACROS.INC.

Sample Code 1: Incorrect


; Assemble options needed: /D?WIN=1

  INCLUDE CMACROS.INC

  END 

Sample Code 2: Correct


; Assemble options needed: none

   ?WIN  =  1              ; ?WIN must be defined before the include.
   INCLUDE CMACROS.INC

   END 

Additional query words: 6.00

Keywords :
Version : :6.0,6.0a,6.0b
Platform :
Issue type :


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.