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
Peter, bana istediğin gibi davranabilirsin, bu senin hakkın, ama biraz daha deneyimli bir yoldaşın tavsiyesini dinle.
GUI_DRIVE.mqh dosyası, koda ilk olarak dahil edilir. Kendisinden önce hiçbir şey açıklanmadı.
Kendiniz derlerseniz, G_CORE yokluğunda bir hata verecektir ve dizi bu dosyada bildirilmediği için bu mantıklıdır!
Çözüm? Pekala, burada sonuç basit: bu dizi bu dosyada bildirilmelidir. Sonuçta, bu diziyle çalışan bu dosyadır, çünkü bu dosya "motor"dur! Bu nedenle, kullanım bağlamına göre dizinin kendisinin bildirimi doğrudur.
Bir sonraki dosya olan CORES.mqh'de dizinin kendisi form öğelerinin açıklamasıyla doldurulur.
Tabii ki, EA'nın kendisini bu dosyalarla derlerken, dizi ilk dosyada bildirilirse, derleme sorunu olmayacaktır, çünkü ikinci dosya derlenirken, dizi zaten program içeriğine görünür olacaktır.
Ancak her dosyanın hatasız derlenmesi gerektiğinden bahsediyoruz. İkinci dosyadaki G_CORE dizisi elementlerle dolu olduğu için diziyi bildirmezsek bu dosyayı derlerken bir hata ile karşılaşmamız oldukça doğaldır.
Ve burada İskender'in dediği gibi bir saplama kullanıyoruz.
Peter, tanımlarda "bir köpek yedin", böylece hilenin ne olduğunu hemen anlayacaksın.
GUI_DRIVE dosyasında, çekirdek G_CORE öğelerinin global bir dizisini bildirirsiniz, bundan sonra dosyanın hatasız derlenmesi gerekir.
Bu dosyada ayrıca bir tanım eklersiniz
#define __DRIVE__
Çekirdeklere geçelim. Bir dizi bildirmeden önce derleme önişlemcisini kullanın.
Ve sonra dizinin kendisini doldurursunuz. Tabii ki, bunu bir bildirim olmadan yapmak için diziyi doldurma şeklinizi biraz değiştirmeniz gerekecek.
Sanırım konuyu anladınız: CORES dosyası derlendiyse, __DRIVE__ tanımlaması yoktur ve dizi bildirim kodu derlenir ve ardından her şey normal şekilde çalışır.
Dosya bir Expert Advisor'ın parçası olarak derlenmişse, ilk dahil edilen dosyanın derlenmesinden sonra bir tanım bildirilir ve derleyici bu kod parçasını "keseceği" için dizi ikinci dosyada bildirilmez.
Umarım gerçekten açık bir şekilde anlatabilmişimdir.
Yine, her dosya hatasız derlenmelidir. Bağımlılıklar varsa, konumlarını doğru bir şekilde sağlamanız ve gerekirse yeniden derleme işlemcileri eklemeniz gerekir.
Dosyalarınızın her biri hatasız derlendiğinde, tüm sistemin bütünlüğüne daha fazla güven duyulur.
Ve her dosyaya bir özellik eklemeyi unutmayın:
Bu özellik daha sıkı bir kod kontrolü sağlar.
Evet, önişlemci ile yapılan manipülasyonlar sayesinde her dosyanın hatasız olarak ayrı ayrı derlenmesini sağlayabilirsiniz.
Burada, bazı yoldaşlar, meta editörün arayüzünü biraz değiştiren ayrı bir yazılım yapmak için yazıyorlar - sadece kullanım kolaylığı için!
Bu standart, bir tweeter aracılığıyla Mors kodu yazmak yerine klavye kullanmak gibidir. Saplamalar, derleme sırasında dosyalar arasında sürekli sayfalama dışında hiçbir şeyi değiştirmez. Ancak saplama 2 satır koddur. Ve sadece bir düğmeye basmak için bu çevirmeye ne kadar zaman harcayacağız. Ve böyle 7'yi kaç kez çevireceğiz ve hayatımızı bir gıcırtı aracılığıyla mektup doldurmakla harcamamak için daha mantıklı olan ne?
Şimdi dikkat edin, nesneler veya sınıflardan değil, sadece zamandan tasarruf etmekten bahsediyoruz. Zamanınızın .. Ayrıca, bunları kendiniz yazmak için bir standart oluşturabilirsiniz.Varsayılan olarak İngilizce geliştirme ortamı tarafından ayrımcılığa uğrayan Rusça kodlamadan bahsetmiyorum. Ayrıca uyarlayın ve beyninizi sefil bir üretkenliğin %30'unu bırakın, Rusça'da ise %100'ünü kullanabilir miyim?
Profesyonel kodda, genellikle kendi veri türlerini kullanırlar. Hangi dilde oldukları umurumda değil.
Ancak fonksiyon şu sırayla bir tamsayı bekliyorsa: (genişlik, yükseklik) alalım.
Ve bunun yerine yanlışlıkla karıştırdık ve yazdık.
Alalım (yükseklik, genişlik) - o zaman derleyicinin kendisi burada kafamızın karıştığını söylüyor. İşe yarıyor mu - burada da dil veya nesnelerden bahsetmiyoruz. Ve bu hatayı daha sonra kendiniz aramamak için
Profesyonel kodda, genellikle kendi veri türlerini kullanırlar. Hangi dilde oldukları umurumda değil.
Ancak fonksiyon şu sırayla bir tamsayı bekliyorsa: (genişlik, yükseklik) alalım.
Ve bunun yerine yanlışlıkla karıştırdık ve yazdık.
Alalım (yükseklik, genişlik) - o zaman derleyicinin kendisi burada kafamızın karıştığını söylüyor. İşe yarıyor mu - burada da ne bir dil ne de nesneler. Ve bu hatayı daha sonra kendiniz aramamak üzere
Peter, bana istediğin gibi davranabilirsin, bu senin hakkın, ama biraz daha deneyimli bir yoldaşın tavsiyesini dinle.
......
Ve her dosyaya bir özellik eklemeyi unutmayın:
Bu özellik daha sıkı bir kod kontrolü sağlar.
bu ilk beşin altında yapılır - her zaman katıdır!
genel olarak katılıyorum: derleme sırasında bir sürü uyarı, kodun güvenilirliğini artırmaz.
bu ilk beşte yapılır - her zaman katı kurallar vardır!
genel olarak katılıyorum: derleme sırasında bir sürü uyarı, kodun güvenilirliğini artırmaz.