8.15.2 修正编译错误

8.15.2 修正编译错误

当你编译完EA后,要通过编译程序将检查语法正确与否,并确认所有自定义函数和变量都能正常运转。若有错误,编译程序将会停止,所有的编译错误将出现于Toolbox窗口中的Error表内。

当遭遇一大串的编译错误时,记得总要从第一行开始。点击两次列举出的错误,编辑器将直接跳到错误行,修正错误并重新编译。有时候一个简单的语法错误会导致许多元关的错误,即便只有第一个错误是有用的。

以下是一系列常见的编译错误和解决方法:

Variable not defined——你忘记给予执行的变量一个数据类别。若是总体或外部变量,则应该出现在档案的第一行作执行。若是本体变量,找到第一次出现之处,然后将数据类型执行置于其前,否则就检查拼法或变量名称的大小写是否正确。

Variable aleady defined——相同的变量执行了两次。从数据中移除重复变量。

Function is not defined——若问题中的函数是在数据库档案中,确认#include或#import指令正确地放置于档案的第一行。否则,检查函数名称的拼法或大小写,并确定其存在于目前的档案或在相关的数据库档案中。

illegal assignment used——常指一个等于符号(=)。记住:一个等于符号是给变量指定使用,两个等于符号(==)是一个比较操作数。把指派操作数修正成适当的比较操作数。

Assignment expected——这常指向"等于"比较操作数(==)。你用了两个等于符号,而非一个。把操作数修正成一个等于符号。

Unbalanced right parenthesi——这通常发生在使用巢状圆括弧的证语法。到第一个错误所指示的那行,在适当位置插入一个左方圆括弧。

Unbalanced left parenthesis——这是难处理的一个错误。错误通常指向程序最后一行。基本上你忘了某处的一个右方圆括弧。仔细检查最近编辑的程序代码并找寻看看所遗漏的右方圆括弧。你需要按行找出问题所在。

Wrong parameters count——在函数中有太少或太多自变量。从MQL参照中检查函数语法,以修正自变量。

Semicolon expected——你可能忘了在行尾置入分号(;)。把分号放于前一行的尾端。注意:一个遗漏的分号会导致上面各项错误,所以要确保放置这些分号!