英語のメッセージに拒絶反応を示さないで
MQL4でEAやインジケーター等を作成してコンパイルすると、エラーが発生することがしょっちゅうあります。
プログラミングに苦手意識を持っている人は、英語のエラーメッセージが出てしまうと、「謎の記号が出た!もうダメだ!」と思考停止になってしまうようです。
でも、恐れないで!
これは、メタエディターが開発者にヒントを与えてくれているのです。
この例で言えば、「’undeclaredVar’ – undeclared identifier」ですね。直訳すると、「undeclaredVar – 宣言されていない識別子」となります。
識別子というのは殆どが変数のことです。宣言というのは「int ***」や「double ***」といったやつです。
つまり、「undeclaredVarの型宣言を忘れていませんか?コードをもう一度確認してください。」と言っているわけです。
このように、エラーメッセージは決して怖い存在なのではなく、開発者を正しい道へと導いてくれる心強いアドバイザーなのです。
ちなみに、エラーメッセージの行をダブルクリックすると、問題のある箇所に自動でジャンプしてくれます!(素敵!)これ、とても重宝します。
たまに、とんちんかんなエラーメッセージを出力してしまうこともありますが、それはご愛嬌ということで(笑)
//+------------------------------------------------------------------+ //| Sample.mq4 | //| Copyright (c) 2016, りゅーき | //| https://autofx100.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright (c) 2016, りゅーき" #property link "https://autofx100.com/" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { int var = 2 / 1 // セミコロンの付け忘れ return(INIT_SUCCEEDED); // セミコロンの付け忘れの場合、殆どが見当違いの場所を「おかしい」と指摘しちゃう } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { }
それと、以下のサイトにコンパイルエラーの一覧が纏めてありますので、コンパイルエラーが出てしまった時にご活用ください。具体的には、エラーメッセージを本家で検索し、エラー番号を特定します。そして、その番号を和訳サイトで検索して、どんなエラー内容かを確認します。