MT4ビルド600のDLL化どうする?

 

MT4がバージョンUPして早くも一月が経過しました。^^;

MQL5に仕様が近くなったようで、言語的にもCに近くなったとか

 

今回のバージョンは、SEの方などにいわせると更に使いやすくなったらしいのですが元々プログラムが苦手だったtomoにとっては、正直今度のバージョンUPはめんどくさいですね。

 

いっそのことMQL5に統一ということになれば、そっちも覚えていこうかと思ってもいながらどうなのだろうか??といまだに様子見しているという現状です。ぎりぎりまで509路線だな。

 

やっとこそさ覚えたDLLの使い方もまた何やら一部変更になっているらしい^^;

詳細は、よく分からないままに、見よう見まねでBuilde610でDLLファイルをつくってみよう

もう、自分為の備忘録です。

image

 

Microsoft Visual C++フリーで導入可能ですから^^
MQLがそこそこ理解できるようになったらDLL化にチャレンジしてみるのもいいですよ。

出来たからと言って何が出来るかは、、、、まだまだ厳しい道のりがあるのですが

 

image

MQL4→Scripts→Examples→DLL

のフォルダにDLLのサンプルプログラムが入っていました。

この辺りは、前回も同様ですね。

非常~に、サンプル助かります。

 

Visual C++でサンプルを覗いてみます。

20140310192102

 

20140310192118

 

defとcppファイルおまけに呼び出し側のDLLSampleもあるので、あ~ん、なるほど

これをちょっと改造して使えば簡単にできそうですね。

 

20140310192714

MT4_EXPFUNC~~~~から上は、おまじないみたいなものなので

さわらぬ神にたたりなしですね。。。。。。

 

何となく構造がわかったきになって来たので実際にDLLを作ってみたいと思います。

 

Visual2008を私は使ってますが、2010でもそれほど違いは、無いような気もします。

この辺りの質問は、一切受け付けません。まったく理解してないので答えられないからですd^^;

 

DLLを作る

20140310234811

  VCのプロジェクト作成からWin32→Win32プロジェクトを選択して

プロジェクト名を入力→OKです。

 

20140310234947

迷い無く次へを押してましょう。

 

 

20140310235430

空のプロジェクトには、チェックを入れずに作りました。

たぶん、空からDLLを作成することも出来る筈ですが、設定が悪いのか上手くいきませんでした^^;

 

20140310235633

プロジェクトを作るとVisual C++が2008が必要なファイルを勝ってに作ってくれるようです。

 

DLL側のソースは、シンプルです^^;

 

//+——————————————————————+
//|                                                                  |
//+——————————————————————+
MT4_EXPFUNC int __stdcall GetintKeisan(const int tasu,int tasu2)
  {
      int kotae=0;
      kotae = tasu + tasu2;

   return(kotae);
  }

 

足し算をしているだけですね。

kotaeに代入して返しています。

 

MQL側(Mt4)は、下のようにコードを書きました。

 

#import "tomodll.dll"
int GetintKeisan(int,int);
#import

//+——————————————————————+
//| expert initialization function                                   |
//+——————————————————————+
int init()
  {
//—
   return(0);
  }
//+——————————————————————+
//| array functions call                                             |
//+——————————————————————+
int start()
  {
   int a=8;
   int b=5;
   int kotae=GetintKeisan(a,b);
   Comment("Kotae = ",kotae);

//—
   return(0);
  }
//+——————————————————————+

こちらも簡単です、GetintKeisanでDLL側に任意の数値を送り

計算された答えをコメントで、チャートに表示しているだけです^^

 

20140311000518

 

おっときちんと足し算は出来ているようですね(笑)
たぶんいろいろおかしな手順でDLLを作っているような気もしますが結果があっていればまず良しです。

意外に簡単にできましたね。

また色々やってみますかね。

タグ

2014年3月11日 | コメント/トラックバック(0) |

カテゴリー:DLLを作る

このページの先頭へ