PRB: L1035 Linking MOVE Application Using a Fastcall Function

ID: Q117887


The information in this article applies to:
  • Microsoft LINK for MS-DOS, versions 5.3, 5.31, 5.5, 5.6


SYMPTOMS

An attempt to link an application fails and Microsoft LINK generates the following error message:

fatal error L1035: syntax error in module-definition file


CAUSE

The application is using MOVE overlays and has a function that uses the fastcall calling convention in an overlay. The name of the function is specified in the module-definition (.DEF) file, with the preceding @ character.


RESOLUTION

Enclose the name of the function in the module-definition (.DEF) file in double quotes ("").


MORE INFORMATION

The following sample code can be used to reproduce the problem:

Sample Code


/* Compile options needed: /AM (or /AL) /Gy /Gs
*/ 

// TEST.C - implementation file

   #include <stdio.h>

   void sub1(void);
   void __fastcall sub2(void);

   void main(void)
   {
        printf("This is main\n");
        sub1();
        sub2();
        printf("This is main, again\n");
   }

   void sub1(void)
   {
        printf("This is sub1\n");
   }

   void __fastcall sub2(void)
   {
        printf("This is sub2\n");
   }

   // TEST.DEF - module-definition file

   NAME TEST.EXE

   FUNCTIONS:1 _sub1
   FUNCTIONS:2 @sub2           ; L1035 Error !
   ; FUNCTIONS:2 "@sub2"       ; use this line to avoid the error 

Additional query words: 5.30 5.50 5.60

Keywords : kb16bitonly
Version : MS-DOS:5.3,5.31,5.5,5.6
Platform : MS-DOS
Issue type :


Last Reviewed: October 27, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.