MQL4 DLL使用Nugent和VB.net

时间:2013-03-02 03:38:25

标签: vb.net dll

我正在使用nugent和vb.net将一个dll与MQL4一起使用,到目前为止它已经相当不错了。

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

该标志在模块中的函数内声明为static。

如果我关闭终端然后再次打开它,标志就会消失,然后重新开始。

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

我认为应该在deinit中调用一个函数但是我找不到任何一个dll'kill'本身的VB.net示例。

非常感谢任何想法。

史蒂夫

更新:我刚想到了。也许dll不应该从图表中删除EA结束?这可能是设计的吗?如果是这样,我可以手动将标志设置为假。

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

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

1 个答案:

答案 0 :(得分:0)

要在MQL4中使用的DLL公开可以扩展MT4提供的功能的函数。根据我对DLL的理解,他们不提供数据保留。就像在您的情况下,当您在MT4代码中调用DLL的函数时,数据将在该调用期间保留。当您重新启动EA时,数据将消失,所有内容都将恢复为默认值。

希望这有帮助。