KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q63008: DEFINT A:DEFLNG B Before SUB Gives "Cannot Precede SUB" in QB

Article: Q63008
Product(s): See article
Version(s): 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | B_BasicCom buglist4.00 buglist4.00b buglist4.50 | mspl13_basic
Last Modified: 8-NOV-1990

Placing two DEFtype statements (DEFINT, DEFLNG, DEFSNG, DEFDBL,
DEFSTR, or DEFCUR) on the same line separated by a colon incorrectly
gives the error "Statement cannot precede SUB/FUNCTION definition" in
QB.EXE and "Invalid statement preceding SUB/FUNCTION definition" in
QBX.EXE. The BC.EXE compiler correctly compiles this line without
error.

To work around this problem, place each DEFtype on a separate line
before the SUB/FUNCTION line.

Microsoft has confirmed this to be a problem with the QB.EXE
environment of Microsoft QuickBASIC versions 4.00, 4.00b, and 4.50; in
the QB.EXE environment of Microsoft BASIC Compiler versions 6.00 and
6.00b for MS-DOS (buglist6.00, buglist6.00b); and in the QBX.EXE
environment of Microsoft BASIC Professional Development System (PDS)
versions 7.00 and 7.10 for MS-DOS (buglist7.00, buglist7.10). We are
researching this problem and will post new information here as it
becomes available.

To reproduce this problem, add the following line before any SUB or
FUNCTION in the QB.EXE or QBX.EXE environment:

   DEFINT A:DEFLNG B

The resulting SUB will appear as follows:

   DEFINT A:DEFLNG B
   SUB test
   ...
   END SUB

To work around this problem, enter each DEFtype as a separate line, as
follows:

   DEFINT A
   DEFLNG B
   SUB test
   ...
   END SUB

Note that if you load a program resembling this into the QB.EXE or
QBX.EXE editor, the editor will automatically put each DEFtype
statements on its own line and remove the colon.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.