Uzman Danışmanımda, içe aktarılan C# DLL'den (.NET Framework 4.8) bir işlev kullanıyorum. Dışa aktarılan işlevin ne yaptığına bakılmaksızın, Uzman ilk başlattığımda iyi çalışıyor ve ikinci kez Metatrader 5 çöküyor. Hata ayıklayıcı, Metatrader 5 çökmeden önce Uzman'daki kesme noktalarına asla ulaşmıyor.
Görünüşe göre DLL ile ilgili bazı kaynaklar Uzman başlatma işleminden sonra serbest bırakılmıyor.
Uzman Danışmanımda, içe aktarılan C# DLL'den (.NET Framework 4.8) bir işlev kullanıyorum. Dışa aktarılan işlevin ne yaptığına bakılmaksızın, Uzman ilk başlattığımda iyi çalışıyor ve ikinci kez Metatrader 5 çöküyor. Hata ayıklayıcı, Metatrader 5 çökmeden önce Uzman'daki kesme noktalarına asla ulaşmaz.
Görünüşe göre DLL ile ilgili bazı kaynaklar Uzman başlatma işleminden sonra serbest bırakılmıyor.
Bunu düzeltmenin bir yolu var mı?
C# DLL kodu:
Uzman Danışman kodu:
Sanırım windows'u yeniden başlatmak işe yarayacaktır...
Uzman Danışmanımda, içe aktarılan C# DLL'den (.NET Framework 4.8) bir işlev kullanıyorum. Dışa aktarılan işlevin ne yaptığına bakılmaksızın, Uzman ilk başlattığımda iyi çalışıyor ve ikinci kez Metatrader 5 çöküyor. Hata ayıklayıcı, Metatrader 5 çökmeden önce Uzman'daki kesme noktalarına asla ulaşmaz.
Görünüşe göre DLL ile ilgili bazı kaynaklar Uzman başlatma işleminden sonra serbest bırakılmıyor.
Bunu düzeltmenin bir yolu var mı?
C# DLL kodu:
Uzman Danışman kodu:
Evet, sorunun ne olduğunu biliyorum.
DLL'niz yükleme ve boşaltma mesajlarını düzgün bir şekilde işlemiyor.
DLL'lerin düzgün yüklenmesi ve boşaltılması için gerekli minimum kodu eksik bırakıyorsunuz.
DLL'lerin düzgün bir şekilde yüklenmesi ve boşaltılması için gerekli minimum kodu kaçırıyorsunuz.
Bunun nasıl düzgün yapılacağını açıklayan herhangi bir spesifikasyonunuz veya kod örneğiniz var mı? Çünkü MQL5 spesifikasyonuaksini söylüyor. Ayrıca benim deneyimlerim de aksini söylüyor: Birden fazla MQL5 projesinde .NET kütüphaneleri kullanıyorum ve Windows 8.1/10/11'de beklendiği gibi çalışıyor.
Bir grafikten manuel olarak siliyorum veya hata ayıklayıcı ile durduruyorum - sonuç her iki durumda da aynı.
Bunun nasıl düzgün yapılacağını açıklayan herhangi bir spesifikasyonunuz veya kod örneğiniz var mı? Çünkü MQL5 spesifikasyonuaksini söylüyor. Ayrıca benim deneyimlerim de aksini söylüyor: NET kütüphanelerini birden fazla MQL5 projesinde kullanıyorum ve Windows 8.1/10/11'de beklendiği gibi çalışıyor.
Bir grafikten manuel olarak siliyorum veya hata ayıklayıcı ile durduruyorum - sonuç her iki durumda da aynı.
Bunun nasıl düzgün yapılacağını açıklayan herhangi bir spesifikasyonunuz veya kod örneğiniz var mı? Çünkü MQL5 spesifikasyonuaksini söylüyor. Ayrıca benim deneyimlerim de aksini söylüyor: Birden fazla MQL5 projesinde .NET kütüphaneleri kullanıyorum ve Windows 8.1/10/11'de beklendiği gibi çalışıyor.
Muhtemelen bulacağınız şey, DLL'nin sonlandırılan işlemden ayrılmadığıdır.
Bu sorunla mysqlclient.dll ile mücadele ediyordum ve strateji test edicisinin DLL'yi temiz bir şekilde ayırmadığını anlayabildim. Daha çok Terminal'in aslında DLL'i yüklediği ve yüklü kaldığı yer gibi görünüyor.
Lütfen bu konuda biraz araştırma yapın, çünkü bugün itibariyle çalışmadıkları için artık eski istemci sürümlerini doğrulayamıyorum. Bu nedenle şu anda o zamanki sorunu yeniden üretme imkanım yok.
Muhtemelen bulacağınız şey, DLL'nin sonlandırılan süreçten ayrılmadığıdır.
Bu sorunla mysqlclient.dll ile mücadele ediyordum ve strateji test edicinin DLL'yi temiz bir şekilde ayırmadığını anlayabildim. Daha çok Terminal'in DLL'yi yüklediği ve yüklendiği yerde kaldığı görülüyor.
Lütfen bu konuda biraz araştırma yapın, çünkü bugün itibariyle çalışmadıkları için artık eski istemci sürümlerini doğrulayamıyorum. Bu nedenle şu anda o zamanki sorunu yeniden üretme imkanım yok.
Yazıklar olsun bana. Metatrader 5 terminalini çalıştırdığım Wine önekinde .NET Framework'ün düzgün yüklenmediğini fark ettim. Yeniden yükledikten sonra DLL sorunu çözüldü.
WStranger #: Yazıklar olsun bana. Metatrader 5 terminalini çalıştırdığım Wine önekinde .NET Framework'ün düzgün yüklenmediğini fark ettim. Yeniden yükledikten sonra DLL sorunu çözüldü.
Yine de yardımınız için teşekkürler!
Geri bildirimde bulunduğunuz için teşekkür ederim, bunu bilmiyordum.
Denedim, işe yaramadı. Terminal başlangıcından bu yana her ikinci EA başlatması, wineboot'tan sonra bile bir çökme ile sonuçlanıyor
Dominik Christian Egert #:
Bir grafikten manuel olarak siliyorum veya hata ayıklayıcı ile durduruyorum - sonuç her iki durumda da aynı.
Dominik Christian Egert#:
Bir grafikten manuel olarak siliyorum veya hata ayıklayıcı ile durduruyorum - sonuç her iki durumda da aynı.
Bunun nasıl düzgün yapılacağını açıklayan herhangi bir spesifikasyonunuz veya kod örneğiniz var mı? Çünkü MQL5 spesifikasyonu aksini söylüyor. Ayrıca benim deneyimlerim de aksini söylüyor: NET kütüphanelerini birden fazla MQL5 projesinde kullanıyorum ve Windows 8.1/10/11'de beklendiği gibi çalışıyor.Bir grafikten manuel olarak siliyorum veya hata ayıklayıcı ile durduruyorum - sonuç her iki durumda da aynı.
Bunun nasıl düzgün yapılacağını açıklayan herhangi bir spesifikasyonunuz veya kod örneğiniz var mı? Çünkü MQL5 spesifikasyonu aksini söylüyor. Ayrıca benim deneyimlerim de aksini söylüyor: Birden fazla MQL5 projesinde .NET kütüphaneleri kullanıyorum ve Windows 8.1/10/11'de beklendiği gibi çalışıyor.Yazıklar olsun bana. Metatrader 5 terminalini çalıştırdığım Wine önekinde .NET Framework'ün düzgün yüklenmediğini fark ettim. Yeniden yükledikten sonra DLL sorunu çözüldü.