DLL

MQLでDLLへ配列を渡したいとき

tocchi2019/06/13(木) - 19:30 に投稿

MQL側は以下のように渡す。

// DLLをインポートする.
#import "libConvCharSet.dll"
   // DLLで作成した関数を定義する.
   void getAtai(double&[],int);
   void setAtai(double&[],int);
#import

DLL側は以下のように受け取る。

extern "C"
MT4_EXPFUNC void __stdcall setAtai(double* a, int size)
{
    for (int i = 0; i < size; i++)
    {
        atai[i] = a[i];
    }
}

タグ

MQLでDLLへ文字列を渡したいとき

tocchi2019/06/13(木) - 19:13 に投稿

MQL側はstringで渡す。

// DLLをインポートする.
#import "libConvCharSet.dll"
   // DLLで作成した関数を定義する.
   int LoadNetwork(string);
#import

DLL側はLPTSTRで受け取り、マルチバイト文字列をstringに変換する。

extern "C"
MT4_EXPFUNC int __stdcall LoadNetwork(LPTSTR  file_name)
{
    string     str = WideCharsToString(file_name);
    net.load(str);
    int    nNetSize = net.layer_size();
    return nNetSize;
}

マルチバイト文字列をstringに変換するには以下の関数を作成する。

タグ