2013-03-02 39 views
0

我使用nugent和vb.net將一個dll與MQL4一起使用,目前它還算不錯。使用Nugent和VB.net的MQL4 DLL

在我的dll中,我設置了一個標誌,當條件滿足時,我不必每次調用該函數都要繼續檢查。這工作正常,但我意識到,即使我從圖表中刪除創建dll的EA,該標記仍然保留並在內存中設置。

該標誌在模塊中的函數內聲明爲靜態。

如果我關閉終端,然後再次打開,標誌消失,過程重新開始。

如何從內存中刪除dll,並在刪除EA時釋放資源(靜態變量)?

我在想,它應該可能調用一個函數在deinit中,但我找不到任何VB.net示例的dll'殺死'本身。

任何想法將不勝感激。

史蒂夫

更新:我只是有一個想法。也許該dll不應該結束從圖表中刪除EA?它是否可以像這樣設計?如果是這樣,我可以將標誌手動設置爲假。

但是,這不意味着如果我再次將EA添加到圖表中,會有另一個dll實例嗎?

如果有人有確定的答案,雖然這將是偉大的。

回答

0

要在MQL4中使用的DLL公開的功能可以擴展由MT4提供的功能。從我所瞭解的DLL中,他們不提供數據保留。就像你的情況一樣,當你在MT4代碼中調用DLL的函數時,數據在該調用期間保留。當您重新啓動EA時,數據消失,一切都恢復爲默認值。

希望這會有所幫助。