2018年3月18日日曜日

MT4 終了処理deinit() VS OnDeinit()

旧終了処理deinit()とOnDeinit()を併記した場合どちらが優先されるのでしょうか
①上に書いた方
②両方
③新しいOnDeinit()

②だと応用できそうで面白いのですがどうでしょうか
以下のソースを作成しました。


void OnTick(){}
void deinit(){Print("deinit");}
void OnDeinit(){Print("OnDeinit");}

 コンパイルするとwarningが出ました。const int reasonが足りのでしょうか
余談ですがこの文は面倒です。何とかならないものでしょうか



実行し終了処理を走らせてみます。






deinit()のみ動作しているようです。
上にあるからでしょうか?

void OnTick(){}
void OnDeinit(){Print("OnDeinit");}
void deinit(){Print("deinit");}

今度はOnDeinit()を上にしてみます。

コンパイルwarningは同じです。






またもdeinit()のみが動作します。
順番ではないようです。

void OnTick(){}
void OnDeinit(const int reason){Print("OnDeinit");}
void deinit(){Print("deinit");}

const int reasonを入れてみます。





こんどはerrorでコンパイルできません。
OnDeinit()が定義されている為deinit()は拒否されています。

void OnTick(){}
void deinit(){Print("deinit");}
void OnDeinit(const int reason){Print("OnDeinit");}

順番を逆にします。





今度はOnDeinit()が拒否されました。

上にある方が優先されるようです。
考えてみれば当たり前ですが・・・







I Shall Return(0);

近況の変化とご報告!

先日、一目均衡表の細田先生と一杯飲んできました。
お気づきの人もいらっしゃるかもしれませんが、一目均衡表を使ったEAを開発したことがありません。三代目一目山人の細田先生より一目均衡表の原著を読んで理解してからにしてね~と固く言われているところが理由の一つです。


左(私TACA) 右(三代目一目山人)
さ~て、ゴゴジャン(fx-on)に入社して約一年
なかなか忙しかったのですが三末で退社する事になりました。
退社後はMT4にどっぷりつかる生活に戻ろうと思います!

退社して変わるのは
①EAの出品が可能になる。
②アフィリエートもOKです。
③なまけ気味だったブログも頑張ろうかと思います。

人生一度キリ!!
楽しく生きてみようと思います!