【问题标题】:MQL4 DLL Using Nugent and VB.net使用 Nugent 和 VB.net 的 MQL4 DLL
【发布时间】:2013-03-02 03:38:25
【问题描述】:

我正在使用 nugent 和 vb.net 将一个用于 MQL4 的 dll 放在一起,目前进展顺利。

在我的 dll 中,我会在满足条件时设置一个标志,这样我就不必在每次调用函数时都进行检查。这工作正常,但我意识到即使我从图表中删除了创建 dll 的 EA,该标志仍​​然设置在内存中。

标志在模块中的函数内声明为静态。

如果我关闭终端然后再次打开它,标志已经消失,进程再次开始。

如何从内存中删除 dll 并在删除 EA 时释放它的资源(静态变量)?

我认为它可能应该在 deinit 中调用一个函数,但我找不到任何 VB.net 的 dll '杀死'本身的例子。

任何想法都将不胜感激。

史蒂夫

更新:我只是有一个想法。也许 dll 不应该在从图表中删除 EA 时结束?会不会是这样设计的?如果是这样,我猜我可以手动将标志设置为 false。

但这是否意味着如果我再次将 EA 添加到图表中,将会有另一个 dll 实例?

如果有人有明确的答案,那就太好了。

【问题讨论】:

    标签: vb.net dll


    【解决方案1】:

    在 MQL4 中使用的 DLL 公开了可以扩展 MT4 提供的功能的函数。根据我对 DLL 的了解,它们不提供数据保留。例如,在您的情况下,当您在 MT4 代码中调用 DLL 的函数时,数据会在该调用期间保留。当您重新启动 EA 时,数据已消失,一切都恢复为默认值。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2012-12-03
      • 2012-03-16
      • 1970-01-01
      • 2019-12-12
      • 2011-04-24
      相关资源
      最近更新 更多