如何将 C# DLL 导入 MQL5 脚本

How to Import C# DLL into MQL5 script

我想将以下 C# 代码导入到 MQL5 中,该代码作为 dll 运行良好。你能帮我怎么做绑定吗? (我使用的是 Visual Studio 2015)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Keygen
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
    }
}

MQL5 代码是:

#property strict

#import "Keygen.dll"
void Program();
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Program();
  }
//+--

----------------------------------------------------------------+

在 mql5 中编译后出现以下错误:

Cannot find 'Program' in 'Keygen.dll'
unresolved import function call

我通过将 64 位 dll 文件放入 MT5 终端的“库”文件夹并像这样更改 MQL 代码解决了这个问题。

#import "Keygen.dll"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 Program::Main();
  }
//+------------------------------------------------------------------+

我遇到了同样的问题。最后我想通了。程序集名称、项目 属性 中的默认命名空间和命名空间名称必须相同!然后一切都会正常工作。