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
Çağrı yığını taşması sorunuyla karşı karşıya kaldı (bence).
Nesnelerden birinde bir yöntem çağırdıktan sonra aşağıdaki örneğe bakın. Kod basitleştirilmiştir, yalnızca özü. CClass1 sınıfı temeldir ve list1 listesinde bu sınıfın soyundan gelen farklı nesneler vardır ve bunların init işlevlerinin farklı uygulamaları vardır. Bu nedenle, init işlevinin benzer bir liste üzerinde yinelendiği bir sınıfta (başka bir deyişle, iç içe geçmiş bir arabirimin başlatılması, bir panelde bir panel) bir satırda init'ten döndükten sonra
bir hata oluşur
2010.12.02 00:21:00 test1 (EURUSD,H1) 'Container.mqh' içinde geçersiz işaretçi erişimi (74,10)
Onlar. işaretçi t öldü.
Hata ayıklarken böyle bir hata olmaz, yöntemi çağırdıktan sonra işaretçi "canlı" olur, iç içe arayüzler oluşturulur ve Expert Advisor çalışmaya devam eder.
Hatayı aşmanın tek yolu şudur:
#property yığın boyutunu belirtmek hiçbir şey elde etmedi.Kesin bir şey söylemek zor. Kaynaklara ihtiyaç var.
Servis masasına bir istek yazmayı deneyin.
Tatilden döndüm, terminalleri başlattım, 360'a yükselttim ve bir gösterge çalışmayı durdurdu...
değişiklikleri okuyun: 6. MQL5: Grafikte sabit tıklama olayı işleme.
Şimdi, bir grafik nesneye tıklandığında, hemen iki olay oluşturulur: CHARTEVENT_OBJECT_CLICK + CHARTEVENT_CLICK ve daha önce sadece bir CHARTEVENT_OBJECT_CLICK vardı, bu da çift fare tıklamasını simüle etmeyi mümkün kıldı.
Şimdi hep böyle mi olacak yoksa bir bug mı?
Tatilden döndüm, terminalleri başlattım, 360'a yükselttim ve bir gösterge çalışmayı durdurdu...
değişiklikleri okuyun: 6. MQL5: Grafikte sabit tıklama olayı işleme.
Şimdi, bir grafik nesneye tıklandığında, hemen iki olay oluşturulur: CHARTEVENT_OBJECT_CLICK + CHARTEVENT_CLICK ve daha önce sadece bir CHARTEVENT_OBJECT_CLICK vardı, bu da çift fare tıklamasını simüle etmeyi mümkün kıldı.
Şimdi hep böyle mi olacak yoksa bir bug mı?
Bir kez daha imkansızlık duvarına çarptım,
sınıfın belirli parametrelerle başlatılması için yapıcıya bir parametre iletilmesi gerekir,
sorun nasıl aşılır? ne tavsiye edersin
Bir kez daha imkansızlık duvarına çarptım,
sınıfın belirli parametrelerle başlatılması için yapıcıya bir parametre iletilmesi gerekir,
sorun nasıl aşılır? ne tavsiye edersin
ile
Evet, başka bir yol göremiyorum.
ve elbette, devralınan sınıflar söz konusu olduğunda, Init'i doğru sırada düzenlemeniz gerekir.
ama genel olarak karmaşık projelerde hata işleme hakkında bir makale yazmak istiyorum, Yazdır ve burada olduğu gibi iade bir seçenek değil.
Evet, başka bir yol göremiyorum.
ve elbette, devralınan sınıflar söz konusu olduğunda, Init'i doğru sırada düzenlemeniz gerekir.
ama genel olarak karmaşık projelerde hata işleme hakkında bir makale yazmak istiyorum, Yazdır ve burada olduğu gibi iade bir seçenek değil.
Yani, inşaat sürecini tamamlayacak ve sırayla başlatma bayrağını ayarlayacak bir doconstructor oluşturun.
Genel olarak, ofset, ancak rahatsızlıklar var. Her işlevde başlatma bayrağını yoklamanız gerekecek ve çok sayıda sınıf işleviyle bu uygun değildir.
Aniden bir şeylerin değiştirilmesi gerekecek, tüm işlevlerin yeniden yazılması gerekecek.
ZY Buradaki kodu düzenledim, yazım hatasını erittim.
Yani, inşaat sürecini tamamlayacak ve sırayla başlatma bayrağını ayarlayacak bir doconstructor oluşturun.
Genel olarak, ofset, ancak rahatsızlıklar var. Her işlevde başlatma bayrağını yoklamanız gerekecek ve çok sayıda sınıf işleviyle bu uygun değildir.
Aniden bir şeylerin değiştirilmesi gerekecek, tüm işlevlerin yeniden yazılması gerekecek.
ZY Buradaki kodu düzenledim, yazım hatasını erittim.
Ördek bir kurucu varsa, başlatmanın başarılı olduğu anlamına gelmez. başlatma gerçeğini kontrol etme ihtiyacı için
Elbette bir kez kontrol edebilirsiniz:
ancak kendi kodunuzu kullanırsanız, arama sırasında başlatma gerçeğini kontrol etmeyi bir kural haline getirebilirsiniz ve başkaları tarafından kullanılıyorsa, talimatlara yazamazsınız: “yalnızca böyle bir kod kullanmak zorunludur. Aksi takdirde sonuçlarına kefil olamam.” Hayır, herhangi birinin sınıf yöntemlerinde başlatma kontrolleri yapması gerekiyor.
geliştiriciler
Yeni bir yapıyı yeniden başlattıktan hemen sonra
not
Başka bir klasöre kurulan terminalin güncellemesi başarılı oldu, listede semboller var (güncellemeden önce açık çizelge olmamasına rağmen)...
Bunun bir hata olup olmadığını söyle. şunları yazdı
hata mesajı veriyor
Bunun bir hata olup olmadığını söyle. şunları yazdı
hata mesajı veriyor
Büyük olasılıkla, burada ArrayInitialize() öğesinin yalnızca belirli bir türe sahip dizileri tam sayısal (büyük olasılıkla int veya double ) olacak şekilde doldurmak üzere tasarlandığı gerçeğinden bahsediyoruz.
Dizi ENUM_ORDER_TYPE türünde olduğundan, ArrayInitialize çağrısı, böyle bir çağrı yöntemine izin verilmediğini belirten bir hata verir.
Bana göre bu durumda iki seçenek var:
1. Kodda bunu dikkate alarak ENUM_ORDER_TYPE dizi türünü int olarak değiştirin (en azından sipariş türleri int olarak kolayca temsil edilebilir);
2. Dizinin "başlatma" işlemini bağımsız olarak uygulayın.