Hatalar, hatalar, sorular - sayfa 2747
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Tünaydın! MT5 günlüğünde aşağıdaki mesaj açılır: 2020.05.21 05:49:44.364 Sanal Barındırma, sanal ana bilgisayarların listesini alamadı (www.mql5.com:443 gönderme isteği başarısız oldu [12002])
Söyleyin bana, iyi insanlar, bu ne anlama geliyor ve bununla ne yapmalı?
Teşekkür ederim!
Projelerimden birindeki hata ayıklayıcı benim için çalışmayı reddediyor. Ayrıca, davranışını tahmin etmek zordur. Bazen sadece kesme noktalarına ulaşmayı reddediyor. Ayrıca bazı işlevlere girmeyi de reddediyor. İlk başta sebebin güncellemeler olduğunu düşündüm (birdenbire hata ayıklamada bir şeyler ters gitti). Ancak diğer daha basit programlarda her şey çalışıyor gibi görünüyor. Ana projem üzerinde çalıştığımdan beri çok detaylı kontrol etmedim. Oldukça karmaşık olduğu ortaya çıktı ve sadece tasarımımın 15 modülünü içeriyor (standart modüllerin sayısını saymadım). Ana modül 2000 satıra kadar içerir. Belki projenin karmaşıklığındandır diye düşündüm... Ayrıca, bazı yerlerde tekrarlayan kod parçacıkları için makrolar kullanıyorum. Ayrıca programımın işlevselliği için yeniden yazdığım CAppDialog, CCheckGroup, CComboBox, CButton vb. gibi standart UI öğelerini de kullanıyorum. Belki hata ayıklama onlar yüzünden çalışmıyor... Örneğin, hata ayıklama benim tarafımdan özel olarak yazılmış CCheckGroup::itemCheckState(const string item) yöntemine girmiyor. Yöntem, onay kutusu öğesini bulur ve seçili olup olmadığını kontrol eder (Durumu):
İşte bitirdiğim kullanıcı arayüzü:
Bazı UI öğeleri geçici olarak sınıflandırılır. Ve burada CAppDialog öğesinin Show() ve Hide() yöntemlerini nasıl geçersiz kıldığım hakkında konuştuğum başlık: https://www.mql5.com/ru/forum/338301 . Sonra derleyici yemin etti, kritik bir hata vardı.
Sonuç olarak, projenin normal bir şekilde derlendiği ortaya çıkıyor, derleyici herhangi bir hata üretmiyor. Ancak hata ayıklama sorunludur ve yalnızca bazı kod parçacıklarının, işlevlerin, yöntemlerin vb. yürütülmesini göstermez.
Anladığım kadarıyla, birkaç nedeni olabilir.
Yapı ve sistem bilgisi:
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
CCheckGroup::itemCheckState yönteminde (hata ayıklayıcının ulaşamadığı), şöyle bir şey yazdım:
Ve aşağıdaki mesajı aldı:
2020.05.21 13:20:44.229 CCheckGroup::itemCheckState öğesi: 39 durum: 32
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
Hata ayıklayıcının normal çalışması olmadan, proje üzerindeki çalışma uzun süre sürüklenebilir. Geliştiricilerin, büyük olasılıkla hata ayıklayıcıyla ilgili olan bu hataya dikkat etmelerini istiyorum.
Çok fazla metin var, hepsini okumadım.
Ancak, hata ayıklama sürümünde sizin için bir şey çalışıyorsa ve yayın sürümünde çalışmıyorsa veya bunun tersi olursa, özellikle sınıf/yapıdaki tüm değişkenlerin ve alanların başlatılıp başlatılmadığını kontrol edin.
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
Ücretsiz SymbolInfo -fonksiyonları konusunda.
belki yöntem satır içidir, o zaman bu hata ayıklayıcının değil, hata ayıklama modu için derleyicinin sorunudur
Hemen hemen, projenin hem benim hem de standart modüllerden gelen yukarı ve aşağı makrolarla dolu olduğu ortaya çıktı. Belki de bu yüzden hata ayıklayıcı her zaman *.ex5 hata ayıklama dosyasındaki komutları *.mq5 kaynak dosyasındaki ve diğer modüllerdeki satırlarla eşleştiremez...
Ücretsiz SymbolInfo fonksiyonları konusunda.
yani bu, işlevin kendisinin maliyetidir ve dizeyi referansa göre değil, değere göre iletmez!
dahası, bu işlevin yürütülmesi danışmanın yürütme süresinin önemli bir yüzdesini alıyorsa (ki buna pek inanmıyorum) bir önbellek ile seçeneğiniz oldukça bir çözümdür.
Hemen hemen, projenin hem benim hem de standart modüllerden gelen yukarı ve aşağı makrolarla dolu olduğu ortaya çıktı. Belki de bu yüzden hata ayıklayıcı her zaman *.ex5 hata ayıklama dosyasındaki komutları *.mq5 kaynak dosyasındaki ve diğer modüllerdeki satırlarla eşleştiremez...
yani bu, işlevin kendisinin maliyetidir ve dizeyi referansa göre değil, değere göre iletmez!
Başlangıçta buna yol açtı.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
fxsaber , 2020.05.20 13:24
olması daha iyi tabi
Optimize Edici'de bu işlevler on milyarlarca kez çağrılır.
dahası, bu işlevin yürütülmesi danışmanın yürütme süresinin önemli bir yüzdesini alıyorsa (ki buna pek inanmıyorum) bir önbellek ile seçeneğiniz oldukça bir çözümdür.
Belli bir aşamada, işgal edilen zamanın sadece göreli kısmı değil, mutlak kısmı da önem kazanır.