В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
Вам необходимо организовать трансляцию котировок из MetaTrader 5 в собственное приложение? Связка MQL5-DLL позволяет создавать подобные решения. В статье продемонстрирован один из способов трансляции котировок из MetaTrader 5 в приложения, написанные на .NET. Мне было рациональнее, интереснее и проще реализовать экспорт котировок именно с использованием этой платформы. К сожалению, с выходом "пятерки" поддержки .Net также не появилось, поэтому по старинке будем использовать как прослойку win32 dll с поддержкой .NET.
你能告诉我在哪里可以读到关于在MQL5程序中使用.Net库的信息吗?我在文档中没有找到相应的章节。
在文章中寻找。
例如,在文章中建议通过导出无法管理的代码来做到这一点https://www.mql5.com/ru/articles/249。
但据我所知,通过反编译进行整合是一种黑客技术......我在某个论坛上看到,MQ起诉了黑客。
因此,这种方法将是恰到好处的,作为这种诉讼的论据......)
编写一个非dotnet dll,像其他dll一样在终端正常使用。为了支持dotnet库,我们使用一个支持本地调用的透明包装器。
可能需要一些额外的符号来明确地指向.Net属性,如果我可以看到一个简单的例子的话......
我试了一下,但并没有马上见效。如果我指定了一个带有名字空间和类名的函数名,就像在C#中一样,MQL5编译器不会通过它,如果我只指定了一个函数名,在终端的EX5的运行时间中就没有。
可能需要一些额外的符号来明确地指向.Net属性,如果我可以看到一个简单的例子的话......
https://www.mql5.com/ru/articles/27
这篇文章是关于MQL5程序的附加层,其形式是win32 dll QExpertWrapper.dll,它又与.Net一起工作,我的问题是在MQL5程序中直接使用.Net dll。
https://c.mql5.com/mql4/forum/2009/03/NETSampleR.zip
谢谢你,你所建议的是另一种带有dll中介(包装器)的解释,但适用于MQL4。
我也是这样做的,但为什么我需要所有这些技巧,减少可靠性,并在每个库上放一个不同的包装,如果它已经在终端中了......
只给我看一个如何使用它的小例子,这个透明的工作人员vrapper...
...为了支持dotnet库,我们使用一个支持本地调用的透明包装器。
不时有一些 "废话 "发生:优化器不启动,我想处理器可能太忙或什么的。今天我重新启动了WIN XP,对磁盘进行了解压缩,启动了优化器。
IQ 0 04:19:14 Tester Experts/Smart Neurons Test.ex5对EURJPY,H1从2003.06.01 00:00到2013.06.01 00:00的测试。
IP 0 04:19:14 PM 测试仪优化启动
PG 0 04:19:14 测试者初始任务包的大小为512
PM 0 04:19:14 核心1号代理进程开始了
CN 0 04:19:15 核心1连接到127.0.0.1:3000
II 0 04:19:15 核心1已连接
QP 0 04:19:16 核心1连接关闭
第二次成功了,即我先按了 "停止",然后又按了 "开始",而第一次就不行了。