我正在使用 nugent 和 vb.net 将一个用于 MQL4 的 dll 放在一起,到目前为止它运行良好。
在我的 dll 中,我在满足条件时设置一个标志,这样我就不必在每次调用函数时都进行检查。这工作正常,但我意识到即使我从图表中删除了创建 dll 的 EA,该标志仍然设置在内存中。
该标志在模块中的函数内声明为静态。
如果我关闭终端然后再次打开它,则标志已经消失并且该过程再次开始。
如何从内存中删除 dll 并在删除 EA 时释放它的资源(静态变量)?
我在想它可能应该在 deinit 中调用一个函数,但我找不到任何 VB.net 的 dll '杀死'本身的例子。
任何想法将不胜感激。
史蒂夫
更新:我只是有一个想法。也许 dll 不应该在从图表中删除 EA 时结束?会不会是这样设计的?如果是这样,我猜我可以手动将标志设置为 false。
但这是否意味着如果我再次将 EA 添加到图表中,将会有另一个 dll 实例?
如果有人有明确的答案,那就太好了。