Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
是的,我明白了。我被 C 调吓倒了...... :)))))
事实上,你被吓到是对的。如果你深入研究并试图做出一些好东西,那么 C 升调并不简单。
现实地举例说明如何使用这个图书馆?
这篇文章太棒了!
这篇文章非常出色!
任何 MQL 程序员都可以用它在专业而稳定的编辑器中制作图形用户界面。而且不仅在 MT 中可以重复使用他们的劳动成果。
如果有可能从 Controller 生成派生类,一般来说,它将是 "巧克力"--Expert Advisor 将通过高级包裹与 Controller 通信("打开带有选项的订单 #NN"),Controller 将向表单发送信息("向表中添加带有字段的行")。这样,活动就被分成了正确的部分。EA 只进行交易,而图形用户界面则进行显示。它们可以分别完成/更改/制作,甚至可以由不同的项目和不同的人完成/更改/制作。
向作者致敬
如果你能从 Controller 生成派生类,那么它一般就是 "巧克力 "了。
您可以在源代码中添加自己的数据交换函数并调用它;)
您只需在源代码中添加自己的数据交换函数并调用即可;)
当然可以......但这种简单的方法会导致代码面条和一堆枯萎的项目:-)OOP 就是为了防止出现这种情况而设计的。
与 EA 和窗体交流的 "物理 "应该集中在原始控制器中。以及制作衍生物的方法。
顺便问一下,当表单被替换时,整个捆绑包将如何运行?
在我看来,这项技术的亮点在于,EA 可以像以前一样继续工作(无需重新编译,最好也无需停止),而窗体则可以更改。
主要要求是 EA 能够进行交易。它与资金相关,应尽量少碰。
当然可以......但这种简单的方法会导致代码面条和一堆枯萎的项目:-)OOP 就是为了防止出现这种情况而设计的。
从完美主义者的角度来看,您说得百分之百正确,但不幸的是,在某些情况下,当我们试图实现代码的通用性时,我们得到的结果是非常缓慢的,但所有可能的情况和例外都会被考虑在内。
SUS:我刚刚放弃了 VS2017 中的 datagridview,以调整它在处理大数据和至少 1 秒更新一次时不会变慢......它仍然很沉闷,但它本身收集了多少类,是完美遵守 OOP 原则的样本;)
附注:datagridview 源代码,只有 7000 行,还需要多少额外代码,我都不想数了。
https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs
)))
从完美主义者的角度来看,你说得百分之百正确,但遗憾的是,在某些情况下,当我们试图在所有事情上都实现通用代码时,我们得到的结果是非常缓慢的,但所有可能的情况和例外都会被考虑在内。
SUS:我刚刚放弃了在 VS2017 中设置数据网格视图,这样它在处理大数据和至少每 1 秒更新一次时就不会变慢......它仍然会变慢,但它本身收集了多少类,是完美遵守 OOP 原则的样本;)
附注:datagridview 源代码,只有 7000 行,还有多少额外的代码,我都不想数了。
https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs
)))
在这里,你无法反驳--微软是制作领先于硬件能力的软件的大师:-))
---
偏离主题--在这里,孩子们提出 "我们想自己做一个玩具 "的要求,并不得不寻找一些可视化的东西。用鼠标画画,设置简单的规则,而不需要借助 python/lisp/sharp --并且可以立即工作。
在众多选择中,只有微软公司的 Kodu 最合适。它很酷、很美、很清晰,是 "可视化编程应有的样子 "的理想之选。但它从 Sharp 调用了太多东西,而且速度太慢......我得买台新电脑了:-)
您好,文章写得很好!
关于上述内容,我产生了一些疑问:
1) 文章给我的印象是,不仅图形界面可以用同样的方式组织,而且几乎所有 "不适合" MQL5 的 API 的实现也可以用同样的方式组织。
2)据我所知,使用 .Net 平台,您可以用不同的语言编写程序,而不仅仅是 C#。尤其是 C++。
我的问题是,是否可以用 C++ 编写一个 .Net 库(我的理解是使用 C++/CLR),这样 MQL5 就可以像您的 GuiController 引擎一样理解其 .Net 代码?我的意思是 #include "...dll",并且不声明导入的函数?
我感兴趣的实际例子是这样的。如今,VS2017 有可能集成机器学习的 opsensor 库,例如 TensorFlow 提供了支持 GPU 计算的 C++ API。您的文章提供了将 TensorFloW(或任何其他机器学习库)的 C++ 实现直接集成到 MQL5 的绝佳机会,这对我来说似乎非常方便。问题是,由于某些原因,我甚至无法使用这里提到的方法将试用的 C++ dll 导入 MQL5。
这篇文章指出了 MT5 与 "外部世界 "完全不同的交互方式,您需要在 MT5 代码中描述 C++ 函数的签名,然后像普通 dll 一样调用它们。
https://www.mql5.com/zh/articles/18
你好:tensorflow c# 完全可以在谷歌上搜索到,这里有 C# 的现成解决方案https://nugetmusthaves.com/Tag/tensorflow