PRB: Mixed Language Apps Will Not Run Due to Extra END (86452)
The information in this article applies to:
- Microsoft FORTRAN Compiler for MS-DOS 5.0
- Microsoft FORTRAN Compiler for MS-DOS 5.1
- Microsoft FORTRAN compiler for OS/2 5.0
- Microsoft FORTRAN compiler for OS/2 5.1
This article was previously published under Q86452 SYMPTOMS
Mixed-language C and FORTRAN Windows applications may appear to
fail to start when executed or, under CodeView for Windows, may
immediately exit with the Program Terminated Normally message on
the first step into the application.
CAUSE
The FORTRAN code may have an additional END statement following the
subroutine or function declaration. An additional END statement is
interpreted by the compiler as an empty main program declaration,
and thus causes the insertion of the entry point _main.
The startup code in a Windows 3.x executable looks first for a
function named main (_main with C declaration style); if it cannot
find the main (or _main) function, it looks for a function called
WinMain(). If neither of these functions exist, the following
run-time error is generated:
R6021: No Main Function
Because the FORTRAN code declared a _main function that does
nothing, the main window of the program is not created and the
application exits immediately after it starts. This problem is more
common with mixed-language C and FORTRAN Windows applications.
RESOLUTION
Check all FORTRAN code for extra END statements and remove them.
STATUS
This functionality is by design. Windows applications should have
only WinMain() functions as entry points. The problem is caused by
the interpretation that standard FORTRAN syntax gives to an extra
END statement.
Modification Type: | Major | Last Reviewed: | 12/1/2003 |
---|
Keywords: | KB86452 |
---|
|