8.15.2 修正编译错误
当你编译完EA后,要通过编译程序检查语法正确与否,并确认所有自定义函数和变量都能正常运转。若有错语,编译程序将会停止,所有编译错误将出现于Toolbox窗口中的Error表内。
当遭遇一大串的编译错误时,记得总要从第一行开始。点击两次列举出的错误,编辑器将直接跳到错误行,修正错误并重新编译。有时候一个简单的语法错误会导致许多无关的错误,即便只有第一个错误是有用的。
以下是一系列常见的编译错误和解决方法:
●Variable not defined——你忘记给予执行的变量一个数据类别。若是总体或外部变量,则应该出现在档案的最上面。若是本体变量,找到第一次出现之处,然后将数据类型执行置于其前。否则,就检查拼法或变量名称的大小写是否正确。
●Variable already defined——相同的变量执行了两次。从数据中移除重复变量。
●Function is not defined——若问题中的函数是在数据库档案中,确认#include或#import指令正确地放置于档案的开始位置。否则,检查函数名称的拼 法或大小写,并确定其存在于目前的档案或在相关的数据库档案中。
●Illegal assignment used——常指向一个等于符号(=)。记住:一个等于符号是给变量指定使用,两个等于符号(==)是一个比较操作数。把指派操作数修正成适当的比较操作数。
●Assignment expected——常指向等于比较操作数(==)。你用了两个等于符号,而非一个。把操作数修正成一个等于符号。
●Unbalanced right parenthesis——这通常发生在使用巢状圆括弧的if语法中。到第一个错误所指示的那行,在适当位置插入一个左圆括弧。
●Unbalanced left parenthesis——这是难处理的一个错误,错误通常指向程序最后一行。一般是你忘了某处的一个右圆括弧。仔细检查最近编辑的程序代码,并找到所遗漏的右圆括弧。你需要按行找出问题所在。
●Wrong parameters count——在函数中有太少或太多自变量。从MQL参照中检查函数语法,以修正自变量。
●Semicolon expected ——你可能忘了在行尾置入分号(;)。把分号放于前一行的尾端。注意:一个遗漏的分号会导致上面各项错误,所以要确保放置这些分号。