Microsoft KB Archive/27490

= FUNCTION Fails to Return Zero by Default When Compiled as .EXE =

Article ID: 27490

Article Last Modified on 11/21/2006



This article was previously published under Q27490



SYMPTOMS
When a FUNCTION is called multiple times inside the QB.EXE editor, the FUNCTION automatically returns a value of (0) zero unless it is set to some other value within the FUNCTION, as expected.

However, when run from an .EXE file, the value returned by a FUNCTION is no longer reset to zero by default; it retains its value from the previous invocation.



STATUS
Microsoft has confirmed this to be a bug in QuickBasic versions 4.00, 4.00b, and 4.50 for MS-DOS; in Microsoft Basic Compiler versions 6.00 and 6.00b for MS-DOS and OS/2 (buglist6.00, buglist6.00b); and in Microsoft Basic Professional Development System (PDS) versions 7.00 and 7.10 (buglist7.00, buglist7.10) for MS-DOS and MS OS/2. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.



MORE INFORMATION
When running the program below in the QB.EXE or QBX.EXE editor, the first five FUNCTION calls return a value of 99; the next five, from i%=6 to 10, return zeros, as expected. However, when run as an .EXE program, the last five FUNCTION calls incorrectly return a value of 99 instead of zero.

To work around the problem, add the line &quot;fun%=0&quot; as the first line of the function; the .EXE file will then work properly.

The following a code example demonstrates the problem when compiled with BC.EXE, linked, and run as an .EXE program: DECLARE FUNCTION fun% (i%) FOR i% = 1 TO 10 PRINT fun%(i%) NEXT i%  FUNCTION fun% (i%) STATIC ' fun%=0  ' This line can be added as a workaround. IF i% <= 5 THEN fun% = 99 END FUNCTION

Additional query words: QuickBas BasicCom B_BasicCom buglist4.00 buglist4.00b buglist4.50

Keywords: KB27490

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.