Microsoft Quick BASIC出错信息(V4.5)
●编译态错 ●运行态错
每一种类型的错误都与程序发展过程中的特殊步骤有关,当使用QB或BC 命令引导入QuickBASIC时可能发生引导错。编译过程中可能发生编译错(及警告)。当程序运行时可能发生运行态错。只有当使用链接命令来链接用BC或其他语言编译器产生的目标文件时才可能发生链接错。
1.2节按字母顺序列出了引导态,编译及运行态出错信息以及所有的规定的出错代码。表1.1按数字顺序列出了运行态出错报文及出错代码。1.3节列出Microsoft Overlay Linker出错信息, 而1.4节列出了Microsoft Library Manager出错信息。
1.1 出错信息显示
在环境中当运行态错误发生时(使用缺省屏幕显示),错误信息出现在会话框中,光标放置在错误发生的行中。
在独立的可执行的程序中( 即在系统提示符下通过输入可执行文件的基本名就能够执行的程序),运行态系统打印出带有地址的出错信息,除非在BC命令行中指定了/D,/E,或/W选项。在这些情况下,出错范围后面跟有错误发生的行号。这类出错信息的标准形式如下:
Error n in module module-name at address segment:offset或Error n in line linenumber of module module-name at address segment:offset某些错误已列入错误代码清单,如果错误发生当进入错误捕获子程序时ERR的返回值设立相应的代码(用ON ERROR语句可以进入错误捕获子程序)ERR值保持不变,直到RESU
ME语句返回到对主程序的控制。
表1.1 运行态错误代码
Deseription Code Deseription
2 syntax error 53 File not found
3 RETURN without GOSUB 54 Bad file mode
4 Out of DATA 55 File already open
5 Illegal function call 56 FIELD statement active
6 Overflow 57 Device I/O error
7 Out of memory 58 File already exists
9 Subscript out of rang 59 Bad record length
10 Duplicate definition 61 Disk full
11 Division by zero 62 Input past end of file
13 Type mismatch 63 Bad record number
14 Out of string space 64 Bad file name
16 String formula too complex 67 Too many files
19 No RESUME 68 Device unavailable
20 RESUME without error 69 Communication-buffer overflow
24 Device timeout 70 Permission denied
25 Device fault 71 Disk not ready
27 Out of paper 72 Disk-media error
39 CASE ELSE expected 73 Advanced feature unavailable
40 Variable requirted 74 Rename across disks
50 FIELD overflow 75 Path/File access error
51 Internal error 76 Path not found
52 Bad file name or number
(表1.1列出了按数字顺序的错误代码,有关错误的解释请参阅按字母顺序的列表。)
1.2 调用、编译态、运行态出错信息
Argument-count mismatch
在QuickBASIC中使用了其他BASIC版本应用的某种功能,或者这种功能只能在DOS高版本下运行。(编译或运行态错)出错代码:73
Advanced feature unavailable
BASIC子程序或函数中使用的参数个数不正确。(编译态错)
Array already dimensioned
出错可能由下列原因引起:
●使用多个DIM语句定义相同的静态数组。
●数组初始代后使用DIM语句,动态数组使用DIM重新定义前,必须使用ERASE 语句重新分配内存单元;或用REDIM语句重新定义。
●数组被定义后,出现OPTION BASE语句(编译态或运行态错)
Array not defined
使用一个未经定义的数组。(编译态错)
Array not dimensioned
使用一个未经定义的数组。如果使用BC编译,这个错误不“致命”,程序将被执行, 但结果可能不正确。(编译态错)
Array too big
没有足够的用户数据空间装入所定义的数组,请缩减数组大小或使用$DYNAMIC 元命令。假如数组空间超过64K,或数组不是动态的,并且/AH选择项没有被使用, 仍然会出现这个错误。请减小数组空间,或者使用/AH命令行选择项。使数组成为动态数组。(编译态错)
AS clause required
用AS语句定义的变量没有参数。如果变量的首次定义中具有AS子句, 与该变量有关的一系列语句如DIM,REDIM,SHARED,以及COMMON语句中必须具有AS子句。(编译态错)
AS clause required on first declaration
未曾使用AS子句定义的变量使用AS子句作为参量。(编译态错)
AS missing
编译程序需要关键字AS,如在OPEN“FILENAME”FOR INPUT AS#1语句中。(编译态错)
Asterisk missing
在用户类型的字符串定义中缺少星号(*)。(编译态错)
Bad file mode
出错原因如下:
●程序对顺序文件使用PUT或GET语句,或者对非I,O,或R 文件模式使用OPEN语句。
●对不是以随机存取方式打开的文件使用FIELD语句。
●对以输入形式打开的文件进行输出操作。
●对以输出或拼接形式打开的文件进行输入操作。
●QuickBASIC试图使用以压缩的格式存贮的包含文件,包含文件必须以文本格式存贮,重新装入包含文件,以文本格式存贮,然后再运行该程序。
●试图装入一个错误的二进制程序。(运行态错)
出错代码:54
Bad file name
使用LOAD.SAVE.KILL或OPEN语句时,文件名非法(如:文件名字符太多)。(运行态错)
出错代码:64
Bad file name or number
语句或命令中使用的文件名或数字未经OPEN语句说明, 或者超出了程序中说明的文件数目。(运行态错)
出错代码:52
Bad record length
GET或PUT语句中所说明的记录变量的长度与相应的OPEN语句中所说明的记录长度不匹配。(运行态错)
出错代码:59
Bad record number
在PUT或GET语句中,记录的个数小于等于零。(运行态错)
出错代码:63
BASE missing
Quick BASIC版本需要在此处出现关键字BASE,例如在OPTION BASE中。(编译态错)
Binary source file
被编译的文件不是一个ASCII文件,所有以BASIC存贮的源文件必须用A选择项。在二进制源文件中,如果用户使用/Z1或/ZD CodeView选择项,QuickBASIC 也使用本出错信息提示。(编译态错)
Block IF without END IF
在IF结构块中,没有相应的ENDIF语句。(编译态错)
Buffer size expected after /C:
/C选择项后必须定义缓冲区大小。(BC引导错)
BYVAL allowed only with numeric arguments
BYVAL不接收字符串或记录参数。(编译态错)
/C:buffer size too large
通讯缓冲区的最大容量是32,767个字节。(BC引导错)
Cannot continue
调试过程中,用户的更改妨碍了连续执行。(运行态错)
Cannot find file (filename),Input path;
QuickBASIC找不到程序所需要的Quick library or utility (BC.EXE,LINK.EXE,L
IB.EXE,or QB.EXE)时,将出现此条出错报文,请输入正确的路径名,或按下CTRL+C键,返回DOS提示符。(QB引导错)
Cannot generate listing for BASIC binary source files
试图用BC命令与/A选择项编译一个二进制源文件,请去掉/A选择项,再重新编译。(BC引导错)
Cannot start with‘FN'
使用“FN”做为子程序或变量名的头两个字母,只有当调DEFFN函数时,“FN ”才能用作头两个字母。(编译态错)
CASE ELSE expected
在SELECT CASE语句中,没有匹配的情况。(运行态错)
出错代码:39
CASE without SELECT
SELECT CASE语句的前半部分丢失或拼写错误。(编译态错)
Colon expected after /C
在选择项与缓冲区大小的参数之间需要一个冒号“:”。(BC引导错)
Comma missing
需要逗号“,”。(编译态错)
COMMON and DECLARE must precede executable statements
COMMON语句或DECLARE语句位置出错。COMMON和DECLARE语句必须放在所有可执行语
句之前。除以下几个语句外,所有BASIC语句都是可执行的。
▲COMMON
▲DEFtype
▲DIM(应用于静态变量)
▲OPTION BASE
▲REM
▲TYPE
▲所有元命令
(编译态错)
COMMON in Quick library too small
模块中的公共变量比当前装入Quick library中的公共变量多。(编译态错)
COMMON name illegal
在名字叫COMMON的块中,QuickBASIC遇到非法块名/blocknamel(例如块名是一个BASIC保留字),(编译态错)
Communication-buffer overflow
在远程通讯中,接收缓冲区溢出,在OPEN COM语句中/C选项或RB选项定义接收缓冲区的大小。应该经常查看该缓冲区空间或者经常给缓冲区置空(使用INPUT函数)(运行态错)
出错代码:69
CONST/DIM SHARED follows SUB/FUNCTION
CONST与DIM SHARED语句应该出现在所有子程序或FUNCTION过程定义之前。如果用BC类编译此程序,这个错误不是致命的,程序将会执行,但运行结果可能不正确。(编译态警告)
Controlstructure in IF...THEN...ELSE incomplete
在IF…THEN…ELSE单行语句中出现了不匹配的NEXT,WEND,ENDIF,END SELECT,或LOOP语句。(编译态错)
Data-memory overflow
内存中的程序数据太多,这个错误是由常量或静态数组数据太多造成的。如果用BC编译,或生成EXE文件或生成Librory命令,应关闭所有的调试选项. 如果内存仍然不够,请将用户程序分成几个部分,并使用CHAIN语句或使用DYNAMIC元命令.(C编译态错)
DECLARE required
在隐含调用SUB或FUNCTION过程之前,没有定义该过程.在隐含调用之前,所有过程都必须定义或说明.(编译态错)
DEF FN not allowed in control statements
在控制结构内部如IF...THEN...ELSE与 SELECT CASE中不允许定义DEF FN函数.(编译态错)
DEF without END DEF
在多行函数的定义中没有相应的END DEF语句.(编译态错)
DEF type character specification illegal
DEF type语句输入错,DEF后面只能跟LNG,DBL,INT,SNG,STR或者空格(对于用户定义
函数).(编译态错)
Device fault
驱动器返回硬件出错.如果数据传送给通讯文件时出现此报文,说明用OPEN COM语句测试的信号在这段时间内未被发现.(运行态错)
出错代码:25
Device I/O error
在驱动器进行I/O操作时出现I/O错误操作系统不能从错误状态恢复.(运行态错)
出错代码:57
Device timeout
在预定的时间内,程序没有从驱动器接到信息.(运行错)
出错代码:24
Device unavailable
需要进入的设备没有联机或者不存在.(运行态错)
出错代码:68
Disk full
没有足够的磁盘空间来完成PRINT,WRITE或CLOSE操作时,Quick BASIC向外设写目标文件或可执行文件时,如果磁盘空间不够也产生这个出错报文.(运行态错)
出错代码:61
Disk-media error
磁盘驱动器硬件在磁盘上查出了物理损伤(运行态错)
出错代码:72
Disk not ready
驱动器的门未关闭,或驱动器上无磁盘,(运行态错)
出错代码:71
Division by zero
表达式中除数为零,或指数运算结果为零的负数次幂.
DO without LOOP
DO...LOOP语句中丢失LOOP终止子句.(编译态错)
Document too large
文卷超出Quick BASIC的内部限制.应将此文卷划分成几个文件.
Duplicate definition
对已被定义过的项使用定义语句,例如,在LONST 语句和变量定义语句中使用相同的名字,或者过程与变量同名.
试图重复定义数组时,也会出现此错,重新定义动态数组时,必须使用DIM或REDIM(编译态错,或运行态错)
出错代码:10
Duplicate label
程序中的两行共用一个数字或标记,在一个模块中,所有行号或标记都必须是唯一的.
(编译态错)
Dynamic array element illegal
在VARPTR中不允许使用动态数组元素.(编译态错)
Element not defined
没有定义用户定义类型的元素,例如,用户定义类型MYTYPE包含元素A、B和C,而在使用时出现变量D做为MY TYPE中的一个元素,就会导致此种错误.(编译态错)
ELSE without IF
使用ELSE子句但没有相应的IF语句,有时此种错误是由不正确的IF语句嵌套造成的.
(编译态错)
ELSEIF without IF
使用ELSE IF语句但没有与之相应的IF语名.(编译态错)
END DEF without DEF
使用ELSE DEF语句,但没有相应的DEF语句.(编译态错)
END IF without block IF
IF程序块的开始部分丢失.(编译态错)
END SELECT without SELECT
只有SELECT CASE结束语句,没有SELECT CASE开始句.SELECT CASE开始句可能丢掉(编译态错)
END SUB or END FUNCTION must be last line in window
在一个过程之后加一个代码,此处必须返回主模块或打开另一个模块.(编译态错)
END SUB/FUNCTION withcut SUB/FUNCTION
用户删除了SUB或FUCTION语句.(编译态错)
END TYPE without TYPE
END TYPE语句,丢失TYPE.(编译态错)
Equal sign missing
Quick BASIC需要一个等号.(编译态错)
Error during Quick BASIC initialization
产生这个错误有许多原因,最常见的原因是没有足够的内存空间装入Quick BASIC.如果装入Quick库,应该减少此库占的空间.
在不支持Quick BASIC的硬件上使用它,也会出现此错误.(QB引导错)
Error in loading file (filename)-Cannot find file
从一个文件改向输入到Quick BASIC时,会产生此种错误.该输入文件不在命令行指定的位置。(QB引导错)
Error in loading file (filename)-Disk I/O error这个错误由磁盘存取时发生的物理问题引起,例如驱动器的门未关闭.(QB引导错)
Error in loading file (filename)-DOS memory-aera error
将汇编语言的程序或POKE语句写入了DOS使用的内存区。(QB引导错)
Error in loading file(filename)-Invalid format
以非法格式装入Quick BASIC库,当使用不同版本Quick BASIC建立的库时,或者使用未经Quick BASIC的建库命令或LINK处理的/QU选项时,或者用Quick BASIC装入独立的库时,将会产生此种错误.(QB引导错)
Error in loading file(filename)-Out of memory
所需的内存空间大于可使用的空间.例如:无足够大的空间分配文件缓冲区.试将DOS缓冲区减小,释放已终止并滞留在内存的程序,或者清除某些设备驱动器. 如果数组很大,请在程序的开始使用元命令$DYNAMIC.如果已装入文卷, 则清除这些文卷可以释放一些内存.(运行态错)
EXIT DO not within DO...LOOP
在DO...LOOP语句之外使用了EXIT DO语句.(编译态错)
EXIT not within FOR...NEXT
在FOR...NEXT语句之外使用EXIT FOR语句.(编译态错)
Expected:item
这是一个句法错.光标出现在不该出现的项上.
Expression too complex
超越了一定的内部限制时,将产生这个错误,例如,在表达式evaluation期间,把与变量无关的字符串暂时赋给变量.大量的这种串的出现会产生此种错误.请简化表达式. 重新指定存放表达式的变量.(编译态错)
Extra file name ignored
命令行中说明的文件太多;该行最后的文件将丢失.(BC引导错)
Far heap corrupt
far-heap存贮在如下情况出错:
●QB编译程序不支持DOS中已终止并遗留在内存的程序.
●POKE语句修改了Quick BASIC使用的内存区.( 这样可能修改对数字或定长字符串的动态数组的定义)
●程序调用了其他语言的子程序,而这个子程序修改了Quick BASIC使用的存贮区.
(这可能修改对数字或定长字符串的动态数组的定义)
●(编译态错)
FIELD overflow
FIELD语句分配的字节大于随机文件中所说明的记录长度.
(运行态错)
出错代码:50
FIELD statement active
文件GET或PUT语句中使用的记录变量的空间已被FIELD语句占用,带有记录变量参数的GET或PUT语句仅仅应用于没有FIELD语句的文件中.(运行态错)
出错代码:56
File already exists
NAME语句定义的文件名已经以文件名的形式在磁盘上使用.(运行态错)
出错代码:58
File already open
从顺序输出方式的OPEN语句要打开一个已经打开的文件,或者用UNK语句对已经打开的文件进行操作.
(运行态错)
出错代码:55
File not found
用FILES,KILL,NAME,OPEN或RUN语句对一个不存在的文件进行操作.
(运行态错)
出错代码:53
File not found in module module-name at address segment:offset
FILE,KILL,NAME,OPEN或RUN语句中的文件不存在,这个出错报文等价于File not found报文。但是,此错误是在执行编译程序时产生的。模块名是正在调用的模块的名字.地址是存取错误代码的地址.(运行态错)
出错代码:53
File previously loaded
试图装入一个内存中已存在的文件.(编译态错)
Fixed-length string illegal
试图用一个定长字符串作为标准参数.(编译态错)
FOR index variable already in use
在嵌套的FOR循环中多次使用下标变量将会产生此种错误.(编译态错)
FOR index variable illegal
在FOR循环下标中使用错误的变量类型,将会产生此种错误.FOR循款下标变量必须是
简单的数字变量.(编译态错)
FOR without NEXT
每一个FOR语句必须配有一个NEXT语句.(编译态错)
Formal parameter specification illegal
函数或子程序的参数表中有错.(编译态错)
Formal parameters not unique
函数或子程序所说明的参数重复出现,如:SUB Get Name(A,B,C,A) STATIC.( 编译态错)
Function already defined
重新定义已经定义过的函数.(编译态错)
Function name illegal
在用户定义的函数名字中,使用了BASIC的保留字.(编译态错)
Function not defined
使用函数之前,必须先说明或定义这个函数.(编译态错)
GOSUB missing
在ON event语句中丢失了GOSUB.(编译态错)
GOTO missing
在ON ERROR语句中丢失了GOTO.(编译态错)
GOTO or GOSUB expected
Quick BASIC需要GOTO或GOSUB语句.(编译态错)
Help not found
所请求的帮助未被发现,而且程序所包含的错误妨碍了Quick BASIC产生变量表, 请按F5返回到产生错误行.Identifier cannot end with %, &, !, # or $
上面的后缀不允许出现在类型定义,子程序名或COMMON语句内出现的名字中.( 编译态错)
Identifier cannot include period
用户定义类型和记录元素的名字不能含有句号.句号只能用作记录变量的分隔符.此外,如果句号前部分的名字在程序某个地方的AS usertype子句中已经使用, 则变量名不能含有句号.如果程序在变量名中使用句号,建议将其改成混合形式.例如,变量ALPHA,BETA可以更改成ALphaBeta.(编译态错)
Identifier expected
试图使用identifier需要的数字或BASIC保留字.
Identifier too long
长度不能大于40个字符.
Illegal function call
超界的参数传送给到数学或字符串函数中,下列原因也会产生函数调用错误:
●使用负数或过大的下标.
●对负数进行非整数指数运算.
●使用GET或PUT文件时,记录数为负.
●赋予函数错误的或超界参数.
●对非磁盘驱动器进行BLOAD或BSAVE操作.
●在不支持I/O函数或语句的驱动器上进行该操作.(如LOC或LOF).
●合并字符串时产生了比32,767还要长的字符串.(运行态错)
出错代码:5
Illegal in direct mode
语句只有在程序中才有效.
而在当前窗中不能使用.(编译态错)
Illegal number
数据格式不正确。也许是书写错误。如数字2p3将会产生这个错误。(编译态错)
Illegal in procedure or DEF FN
Illegal outside of SUB, FUNCTION, or DEFFN
该语句不允许在模块级代码中使用.(编译态错)
Illegal outside of SUB FUNCTION
该语句不允许在模块级代码或DEF FN函数中使用(编译态错)
Illegal outside of TYPE block
模块级码或DEF FN函数中不允许出现该语句(编译态错)
element As type子句仅允许在TYPE…END TYPE中使用.(编译态错)
Illegal type character in numeric constant
数值类型的常数中含有不匹配的类型说明符.(编译态错)
$INCLUDE-file access error
在元命令中命令的包含文件不能装入.(编译态错)
Include file too large
包含文件超越了Quick BASIC的内部限制,需将文件分成若干部分.(编译态错)
Input file not found
命令行中出现的源文件不在指定位置.(BC引导错)
INPUT missing
编译程序缺少关键字INPUT.(编译态错)
Input past end of file
使用INPUT语句读一个空文件,或者文件数据已经读完.可利用EOF函数测试文件结束来避免出现此错误.(运行态错)
出错代码:62
Input runtime module path:
如果运行态模块BRVN45.EXE未被发现就会出现此错误.应当输入正确的路径名.这种错误很严重,并难以捕获.(运行态错)
Integer between 1 and 32767 required
此语句需要整型参数.(编译态错)
Internal error
Quick BASIC发生了内部故障,用带有你文卷的Product Assistance Request表,向Microsoft公司说明在什么条件下出现哪些报文.(运行态错)
出错代码:51
Internal error near xxxx
装入xxxx时发生了Quick BASIC的内部故障.用带有你文卷的Product Assistance R
equest表,说明在什么条件下出现哪些报文.(编译态错)
Invalid character
Quick BASIC发现了无效字符.如在源文件中出现控制字符.(编译态错)
Invalid constant
用非法表过式指定常数值,注意,定义成常数的表达式可以包括数值型常量, 符号常量和除了指数运算以外的所有算术运算符或逻辑运算符. 定义成常量的字符串表达式仅可以包含简单的文字字符串.(编译态错)
Invalid DECLARE for BASIC procedure
在BASIC过程中使用DECLARE语句的关键字ALLAS,CDECL,或者是BYVAL.ALLAS,CDECL 和BYVAL仅可以在非BASIC过程中使用.(编译态错)
Label not defined
引用的行标记(如在GO TO语句中)在程序中不存在.(编译态错)
Left parenthesis missing
Quick BASIC需要左括号,或者REDIM语句给下标变量重新定义空间.(编译态错)
Line invalid,Start again
路径字符“\”或者“:”后使用了无效的文件名.(BC引导错)
Line number or label missing
在需要行号或行标志的语句中,这些符号丢失,例如:GO TO 语句.(编译态错)
Line too long
一行内只允许有255个字符.(编译态错)
LOOP without DO
引导DO...LOOP语句的DO丢失或拼写错.(编译态错)
Lower bound exceeds upper bound
下界超出了DIM语句定义的上界.(编译态错)
Math overflow
计算出的结果太大,不能在BASIC数据格式中表示出来.(编译态错)
$Metacommand error
元命令不正确,如果用BC编译时,此错误不是致命的,程序将运行,但结果可能不正确.
(编译态警告)
Minus sign missing
Quick BASIC需要一个减号.(编译态错)
Missing Event Trapping(/W)or Checking Between Statements(/V)option
程序包含需要这些选择之一的/N event语句.(编译态码)
Missing On Error(/E)option
使用BC命令时,编译包含ON ERROR语句的程序必须使用ON ERROR(/E)选项。( 编译态错)
Missing Resume Next(/X) option
使用BC命令时,编译包含RESVME,RESVME NEXT,和RESVME。语句的程序必须使用RESVME NEXT(/X)选项。(编译态错)
Module level code too large
模块级码超越了Quick BASIC的内部限制。可将一些代码移动到SUB或FUNCTION 过程中。(编译态错)
Module not found。Unload module from program?
装入程序时,Quick BASIC未发现含有指定模块的文件,Quick BASIC将会产生一个空模块取代之。运行程序前必须将空模块删除掉。
Must be first statement on the line
在IF...THEN...ELSE结构中,IF,ELSE,ELSE IF与END IF仅能用行号或行标志引导。(编译态错)
Name of subprogram illegal
出错原因是子程序名使用了Quick BASIC保留 字,或者两个子程序同名。(编译态错)
Nested function defintion
在FUNCTION定义中又出现了FUNCTION定义,或在IF...THEN...ELSE 子句中发生上述情况。(编译态错)
NEXT missing for variable
有FOR语句而没有相应的NEXT语句。该变量是FOR循环的下标变量。(编译态错)
NEXT without FOR 每一个NEXT语句都应该与一个FOR语句相对应。(编译态错)
No line number in module-name at adress segment:offset
出错处理时,在行号表中找不到出错地址就会产生此错误。如果行号不是0_65,527 范围内的整数,也会产生此种错误。如果用户覆盖了行号表也会产生此错误。 这个错误很严重,而且难以发现。(运行态错)
No main module,Choose Set Main Module from the Run menu to select one
程序还未装入主模块就试图运行,所有程序都必须有一个主模块。(编译态错)
No RESUME
程序在处理错误的过程中碰到程序结束标态。需要使用RESQUME语句修正这种情况。(运行态错)
出错代码:19
Not watchable
在观察表达式中指定变量,就会出现此错误。需确认在当前激活的视窗中模块级过程访问了应该匹配的变量。例如,模块级代码不能访问SUB或FUNCTION中的变量(运行态错)
Numeric array illgeal
VARPTR$的参数不能是数值型数组,只能是简单变量和字符串数组元素。(编译态错)
Only simple variables allowed
在READ与INPUT语句中,不允许使用用户定义类型的数组, 即允许使用非用户定义类型的数组(编译态错)
Operation requires disk
试图对外磁盘驱动口,如打印机或键盘进行取出或存入操作。(编译态错)
Option unknown:option
给出的选择非法。(BC引导错)
Out of DATA
执行READ语句时,DATA语句的数据已读完。(运行态错)
出错代码:4
Out of data space
应该修改数据空间请求。如下所述:
●在OPEN语句的LEN子句中减小文件缓冲区。
●使用元命令产生动态数组,动态数组比静态数组的数据量大得多。
●使用定长字符串数组而不是变长字符串数组。
●使用能满足要求的最小数据类型。尽可能使用整型数据。
●尽量少使用小过程。Quick BASIC必须对每一个过程产生若干控制信息字节。
●需要用CLEAR语句来修改栈空间,使用将够用的栈空间来满足要求。
●源程序每行不要多于255个字符,这样的大行需要附加文本缓冲区空间。(编译态或运行态错)
Out of memory
所需的内存大于能够提供的内存量。例如,分配文件缓冲区时空间不够。可以减少DOS缓冲区,或者清除一些终止并滞留在内存的程序或去掉一些设备驱动器。如果数组很大,需要在程序开始加入一条元命令。如果内存中装有一些文卷, 清除文卷可以释放些内存空间。(BC引导错,编译态或运行态错)
出错代码:7
Out of paper
打印机无纸或未开电源。(运行态错)出错代码:27
Out of stack space
递归函数过程嵌套太深,激活子程序过多,FUNCTION与SUB调用太多时,将发生这种错误,应该使用CLEAR语句来增加程序分配的栈空间,这个错误不能被捕获。(运行态错)
Out of string space
字符串变量超越了分配给字符串的空间。(运行态错)
出错代码:14
Overflow
运算结果超界。其值超出了整型数范围及浮点数范围。(运行态错)
出错代码:6
Overflow in numeric constant
常数值太大。(编译态错)
Parameter type mismatch
子程序或FUNCTION参数的类型与DECLARE语句参数的类型或调用参数的类型不匹配。
(编译态错)
Path not found
在OPEN,MKDIR,CHDIR或RMDIR操作时,DOS无法找到指定路径。操作不能完成。(运行态错)
出错代码:16
Path/File access error
在OPEN,MKDIR,CHDIR或RMDIR操作时,DOS 无法使路径名与
文件名正确地联系起来。此操作不能完成。(编译态错或运行态错)
出错代码:75
Permisson denied
对写保护的磁盘进行写入操作或读写加锁文件。(运行态错)
出错代码:70
Procedure already defined in Quicklibrary
QuickBASIC过程与用户程序中的过程同名。(编译态错)
Procedure too large
过程超越了QuickBASIC的内部限制。 需要将此过程划分成几个过程使之缩小。(编译态错)
Program-memory overflow
编译一个代码段超过64K的程序。应该将此程序分成若干个模块,或使用CHAIN语句。( 编译态错)
Read error on standard input
从键盘或改向输入的文件放读操作时会出现这个系统错误。
Record/string assignment required
LSET语句中丢失了字符串或丢失了记录变量参数。(编译态错)
Redo from start
在INPUT提示符下输入错误的数据或项目类型。需要用正确的形式重新输入数据。(运行态错)
Rename acrossd disks
试图用新的驱动器名更改文件名,这是不允许的。(运行态提示)
出错代码:74
Requires DOS 2.10 or later
在不正确的DOS版本下使用QuickBASIC。(QB引导或运行态错)
RESUME without error
在进入出错捕获子程序之前就遇到了RESUM语句。(运行态错)
出错代码:20
RETURN without GOSUB
RETURN 语句之前找不到与之匹配的GOSUB语句。(运行态错)
出错代码:3
Right parenthesis missing
QuickBASIC需要左(结束)括号。(编译态错)
SEG or BYVAL not allowed in CALLS
BYVAL与SEG只允许在CALL语句中应用。(编译态错)
SELECT without END SELECT
SELECT CASE语句中缺少了结束语句或拼写错误。(编译态错)
Semicolon missing
QuickBASIC需要一个分号“;”。(编译态错)
Separator illegal
在PRINT USING或WRITF语句中出现了非法的分界符。应使用分号或逗号做为分界符。
(编译态错)
Simple or array variable expected
编译程序需要变量参数。(编译态错)
Skipping forward to END TYPE statement
TYPE语句中的一个错误Quick BASIC忽略了TYPE与END TYPE之间的一切。(编译态错)
Statement cannot occur within $INCLUDE file
在包含文件中不允许出现SUB。..ENDSUB和FUNCTION...END FUNCTION语句块。使用文件菜单中的Merge命令将包含文件插入到当前模块中,或将包含文件作为独立的模块装入内存,如果把包含文件作为独立的模块装入,需要重新构造, 因为共享变量仅在模块范围内共享。(编译态错)
Statement cannot precede SUB/FUNCTION definition
过程定义前使用的语句只能是REM和DEF type语句。(编译态错)
Statement ignored
在使用BC命令编译含有TRON和TROFF语句的程序时没有用/D选项。这个错误不是致命
的。此程序将会执行,但是结果可能出错。(编译出错)
Statement illegal in TYPE block
在TYPE与END TYPE之间只允许REM和element AS typename出现。(编译态错)
Statement unrecognizable
可能把一个BASIC的语句输入错了(编译态错)
Statements/labels illegal between SELECT CASE and CASE
在SELECT CASE与第一个CASE语句之前不能出现其他语句和行标志。 但是可以出现注释语句和语句分隔符。(编译态错)
STOP in module name at address segment:offset
程序中遇到STOP语句。(运行态错)
String assignment required
REST语句缺少字符串设定。(编译态错)
String constant required for ALIAS
DECLARE语句中的关键字ALIAS应该是字符串常量参数。(编译态错)
String expression required
语句需要字符串表达式做参数。(编译态错)
String formula too complex
字符串太长或者INPUT语句中申请了15个以上字符串变量,应该将字符串公式拆开或将IMPUT语句分成几部分使之正确执行。(运行态错)
出错代码:16
String space corrupt
压缩堆栈时删除字符串空间的无效字符时,会产生此种错误。产生错误的原因如下:不恰当地修改字符串指针或字符串返回指针, 使用汇编语言子程序修改字符串时就会发生此错误。
使用的数组下标超界及字符串空间修改不充分, 过程调试码选项可用来在编译时超界的数组下标。
错误地使用POKE与/或DEF SEG语句可能会不适当地修改字符串空间。
两个相链接的程序间可能出现不匹配的COMMON语句。(运行态错)
String variable required
语句需要串变量参数。(编译态错)
SUB or FUNCTION missing
在DECLARE语句中没有相应的过程。(编译态错)