PRB: L1035 Linking MOVE Application Using a Fastcall FunctionLast reviewed: July 22, 1997Article ID: Q117887 |
|
5.30 5.31 5.50 5.60
MS-DOS
kbtool kbcode kberrmsg kbprb
The information in this article applies to:
SYMPTOMSAn attempt to link an application fails and Microsoft LINK generates the following error message:
fatal error L1035: syntax error in module-definition file CAUSEThe 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.
RESOLUTIONEnclose the name of the function in the module-definition (.DEF) file in double quotes ("").
MORE INFORMATIONThe 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 reference words: 5.30 5.50 5.60
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |