如何将 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();
}
//+------------------------------------------------------------------+
我遇到了同样的问题。最后我想通了。程序集名称、项目 属性 中的默认命名空间和命名空间名称必须相同!然后一切都会正常工作。
我想将以下 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();
}
//+------------------------------------------------------------------+
我遇到了同样的问题。最后我想通了。程序集名称、项目 属性 中的默认命名空间和命名空间名称必须相同!然后一切都会正常工作。