2014年03月01日

【MT4】C#でDLLを作成してみた

この記事を見つけまして・・・

Exposing C# code to MQL5 using unmanaged exports
http://www.mql5.com/en/articles/249

素人の私が見よう見まねでやってみました。MT5ではなく、MT4 Build610になります。

開発環境はWindows7 64bit/Visual Studio Express 2012です。


作り方
①Visual C#のクラスライブラリを選択して新しいプロジェクトを作成します。
classC.jpg


②[ツール]→[NuGet パッケージ マネージャー]→[ソリューションのNuGetパッケージの管理]を選択

③[オンライン]の[nuget.org]から「Unmanaged Exports」を選び、インストールします。検索したほうが早いです。
Unmanaged.jpg


④コードを書きます。


using System;
using System.Text;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;

namespace ClassLibrary1
{
public class Class1
{
[DllExport("Plus", CallingConvention = CallingConvention.StdCall)]
public static int Plus(int left, int right)
{
return left + right;
}
}
}



⑤[プロジェクト]→[プロパティ]→[アプリケーション]で、対象のフレームワークを「.NET Framework 4」にします。
framework.jpg

.NET Framework 4.5ではうまくいかなかったです。どうしてなんでしょう?


⑥同じく、[プロジェクト]→[プロパティ]→[ビルド]で、プラットフォームターゲットを「x86」にします。
release86.jpg

MT5の場合「x64」にします。


⑦ビルドします。(F7を押す)


以上です。あとは普通に使うだけです。


個人的にはC#でプログラムを作ってますし、比較的簡単に作れるなと思いました。自分で使うDLLならこれで問題なく感じます。どうでしょうか。
posted by ロンド at 15:24
"【MT4】C#でDLLを作成してみた"へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]