MQL コンパイラの変遷
MQL フォーラムのスレで micclly さんが発言している MQL コンパイラの件で少し確認してみました。
まず、ビルド 610 時点でのファイルリストは
このような感じで、すべてのファイルがほぼ同一のタイムスタンプになっていますが、これがビルド 613 になると
となっており、mql.exe
と mql.dll
は更新されていないように見えます。
これを受けて、アンパックした MetaEditor の中身を簡単に解析してみると
- 610 では
mql.dll
のMqlCompilerCreate
関数をGetProcAddress
している - 613 では
MqlCompilerCreate
という文字列すら存在しない
ということが分かりました。つまり、ビルド 613 以降の MetaEditor は、コンパイラ機能を内包しており、mql.dll
や mql.exe
を必要としません。
ですので、最近のバージョン 613, 614, 616 では、mql.exe
がなくなっていたりしますが、MetaEditor で編集/コンパイルしている分には問題ないというわけです。
MQL コンパイラの変遷
これまでの MQL コンパイラの実装形態の歴史を見てみると、まず 509 以前は、metalang.exe
という単体 EXE がコンパイラとして機能していました。
それが、ビルド 600 になってから、コンパイラ機能は mql.dll
にまとめられ、コンソールアプリ mql.exe
と GUI アプリ MetaEditor は、mql.dll
のフロントエンドとして働くように変化しています。
そして、直近のビルド 613+ では、MetaEditor から mql.dll
への依存性が取り除かれ、MetaEditor 単体でコンパイルができるようになったと共に、mql.dll
と mql.exe
は標準添付されない方針に変更されつつあるようです。
現在のところ、mql.dll
と mql.exe
は MT4 に標準添付されないだけで、別途ダウンロードする形では提供されるようですので、何が何でも MetaEditor からコンパイルしろ、ということではないと思いますが、なにしろ相手はロシアの暴君 MetaQuotes 様なので、今後の(も?)動きから目が離せません。