首页 > 编程语言 >C#与MQL集成

C#与MQL集成

时间:2023-10-22 12:12:37浏览次数:23  
标签:集成 right C# MQL int import left

MetaTrader 5 MQL Integration Example

Example of how to call C++ / C# functions from MetaTrader 5 MQL Expert Advisors, Indicators, etc

SUPER IMPORTANT: Build both projects in x64 or MT5 won't see the exported functions !

CSharp

  1. Create regular class library (dll) with Visual Studio/MonoDevelop/Xamarin
  2. Include NuGet package UnmanagedExports
  3. Attach DllExport attribute to every public static method you want to export
[DllExport("Add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
    return left + right;
}
 

More examples (Section 4, working with arrays): https://www.mql5.com/en/articles/249

Visual C++

  1. Create Win32 project and from the wizard change project type from Windows Application to DLL
  2. Mark the functions you want to export:
extern "C" __declspec(dllexport) 
int __stdcall MyFunc() { 
	return 42;
}
 

More examples (working with arrays): https://www.mql5.com/en/articles/18

MQL5

  • Copy your DLL files to <terminal_path>/MQL5/Libraries. You can also change output of your project to that path
  • Import DLL files and describe functions
// VC++
#import "MQLIntegrationVCpp.dll"
   int GetTheAnswerOfEverything();
#import

// C#
#import "MQLIntegrationCs.dll"
   int Add(int left,int right);
   int Sub(int left,int right);
   float AddFloat(float left,float right);
   double AddDouble(double left,double right);
#import

int OnInit()
{  
  Print("############ Gateway initiated");
 
  Print("Hello C#: 2+3 = ",Add(2, 3)); // 5
  Print("Hello VC++: The answer is ", GetTheAnswerOfEverything()); // 42

  return(INIT_SUCCEEDED);
}

标签:集成,right,C#,MQL,int,import,left
From: https://www.cnblogs.com/5x19/p/17780239.html

相关文章

  • H3C交换机忘记密码的解决办法,通过console口重置
    一、.拔掉电源再插上重新启动交换机,在超级终端中可以看到交换机启动画面,当出现提示按CTRL+B时,此时按住CTRL+B,我们会看到有9个选项,依次为1.downloadapplicationfiletoflash(下载配置文件到flash中),2.selectapplicationfiletoboot(选择要启动的配置文件),3.displayallfilesinf......
  • c语言初学笔记3
    这几天整理的比较慢,因为有一些是之前的东西在这里做再次批注和解释,更加详细一点intMax(intx,inty){ if(x>y) returnx; else returny;}intmain(){ intnum1=10; intnum2=20; intmax=0; max=Max(num1,num2); printf("max=%d\n",max); return0;}上来就是......
  • 2023 CSP-J/S 复赛(简要思路)
    省流:都没AK,但是思路都没假。(没更新,小声)Japple\(O(\logn)\)模拟,因为\(n\)每次乘\(\frac{2}{3}\)。\(x≡1\mod3\)时第\(x\)个苹果会被拿走。road贪心。每次选价格最少的油加。uqe按照题意模拟。\(c=0\)也许要特判。bus我的方法是二分答案然后倒着最短路,\(mn_{i,......
  • SpringBoot中给Tomcat添加过滤器
    SpringBoot中给Tomcat添加过滤器目录SpringBoot中给Tomcat添加过滤器一、引入二、Filter功能概述三、添加过滤器进行实操3.1、注解版3.2、配置版本四、原理探究4.1、解析过程4.2、如何添加到ServletContext中?五、总结一、引入JavaWeb组件Servlet提供了filter过滤功能,其功能是对......
  • CSP2023 游记
    前言停了大概二十几天的课,考出了这样一个难看的成绩。虽然用教练的话来说,只是CSP,还是要看noip。希望noip好运吧。初赛今年初赛成绩在高中部好像还不错?但是被初中学弟吊打了。https://www.luogu.com.cn/discuss/687363Day-1颓。一整天只看题不写题。上午和同学讨......
  • CSP-S 2023 题解
    expect:\(100+100+65+25=290\)真实:\(100+85+0+15=205\),rk62感觉自己考的好烂好烂好烂T4这么简单竟然想不出来,感觉如果自己不被T4吓到,全做出来其实有望365+?今年CSP-S怎么这么简单吓得我不敢做了T1暴力T2考场做法:设\(lst_i\)表示\(a_i=a_{lst_i}\)并且\((......
  • ABBAC900F学习笔记326:freelance2019SP1作为OPC DA SERVER,WINCC7.5SP2作为OPC DA CLIEN
    昨天练习了ABB的OPCDA通过寻,在同一台计算机上实验的。今天测试局域网上freelance2019SP1作为OPCDASERVER,WINCC7.5SP2作为OPCDACLIENT通讯。测试在昨天的ABB练习程序基础上进行。1.freelance2019SP1作为OPCDASERVER,配置DCOM,参考前面WINCC作为DASERVER的配置方法WINDO......
  • 405-503 搞懂Kubernetes调度 (DNS ingress NodeSelector NodeAffinity)4.5-5.3
    一、Kubernetes里的DNSK8S集群默认使用CoreDNS作为DNS服务:#kubectlgetsvc-nkube-system|grepdnskube-dnsClusterIP10.96.0.10<none>53/UDP,53/TCP,9153/TCP24d测试在node-1-231安装bind-utilsyuminstall-ybind-utils解析外网域名dig@10......
  • CSP2023 补题游记
    day-?10月14日,和zybzxh打洛谷普及组模拟赛,我们三个没一个ak(xs)我和zyb挂T3,zxh不会T4。大概就这样打了356.10月15日切CF的dp题。爽洛谷的膜你赛没打16日至19日继续磕CFdp题。有点上难度哈。21日,比赛日上午继续怼恶心的CFdp。中午12......
  • 17-ReentrantLock和java中的aqs
    一、aqsAQS是AbstractQueuedSynchronizer的缩写,是一个用来构建锁和同步器的框架,是线程安全问题(原子性)的一种解决方案通过它可以实现很多不同类型的锁,例如ReentrantLock。主要内容:用state属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控......