Hatalar, hatalar, sorular - sayfa 1687

 
Soru. MQL'deki boş bir sınıfın boyutu 16 bayttır (64 bit sistemde). Ne yüzünden? Görünüşe göre 8 bayt, sanal bir tabloya yönelik bir işaretçi tarafından işgal ediliyor (belgelere göre, tüm sınıflarda MCL'de var). Peki ya diğer 8?
 
Arkadaşlar böyle bir sorunla karşılaşan yok mu? Bu sabah terminal 1430'a güncellendi. Tesadüfen, dün Expert Advisor'ı standart kitaplık aracılığıyla dosyalarla çalışmak için yeniden yazdım (bundan önce standart dosya işlemleri yoluyla çok başarılı bir uygulama yoktu), ancak test etmedim - Sabaha erteledim. Ve işte sonuç: EA, dosyayı test sırasında bulamaz - FileIsExist işlevi her zaman false döndürür. Sövenin nerede olduğu belli değil - ya değişiklik sırasında ya da güncelleme nedeniyle. İşin püf noktası, belgelerin test ederken dosyanın MQL5/Tester/Files klasöründe bulunması gerektiğini söylemesidir. Ancak, gerçekte yol farklıdır: ...\Roaming\MetaQuotes\Tester\...bazı onaltılık saçmalık...\Agent-127.0.0.1-3000\MQL5\Files. Yani, en azından belgelerde bir hata var. Ancak asıl mesele, test başladığında, OnInit'te FileIsExist işlevine sahip olmama ve dosyalara ilk erişen olmama rağmen, oraya manuel olarak yerleştirilen dosyanın belirtilen klasörden silinmesidir. Öyleyse soru ortaya çıkıyor: test sırasında dosya nereye yerleştirilmelidir? Ve gerçekte ne oluyor?
 
BlackTomcat :
Arkadaşlar böyle bir sorunla karşılaşan yok mu? Bu sabah terminal 1430'a güncellendi. Tesadüfen, dün Expert Advisor'ı standart kitaplık aracılığıyla dosyalarla çalışmak için yeniden yazdım (bundan önce standart dosya işlemleri yoluyla çok başarılı bir uygulama yoktu), ancak test etmedim - Sabaha erteledim. Ve işte sonuç: EA, dosyayı test sırasında bulamaz - FileIsExist işlevi her zaman false döndürür. Sövenin nerede olduğu belli değil - ya değişiklik sırasında ya da güncelleme nedeniyle. İşin püf noktası, belgelerin test ederken dosyanın MQL5/Tester/Files klasöründe bulunması gerektiğini söylemesidir. Ancak, gerçekte yol farklıdır: ...\Roaming\MetaQuotes\Tester\...bazı onaltılık saçmalık...\Agent-127.0.0.1-3000\MQL5\Files. Yani, en azından belgelerde bir hata var. Ancak asıl mesele, test başladığında, OnInit'te FileIsExist işlevine sahip olmama ve dosyalara ilk erişen olmama rağmen, oraya manuel olarak yerleştirilen dosyanın belirtilen klasörden silinmesidir. Öyleyse soru ortaya çıkıyor: test sırasında dosya nereye yerleştirilmelidir? Ve gerçekte ne oluyor?
Genel olarak, FILE_COMMON bayrağı kullanılarak sorun giderildi.
Dosya ...\Roaming\MetaQuotes\Terminal\Common\Files klasöründe bulunur. Test ederken, oradan kaldırılmaz ve normal olarak okunur.
 

Soru: MQL4 forumunda mesajlarımı nasıl bulabilirim? Yaklaşık iki yıl önce, ekli kodla bir konu oluşturuldu ve bu kod şimdi ilginç hale geldi, ancak forum araması sessiz. Yayınlarıma gidersem, bu konu orada değil. (silindi?)

 

Bir makronun en az bir kez kullanılıp kullanılmadığı nasıl anlaşılır?

 
fxsaber :

Bir makronun en az bir kez kullanılıp kullanılmadığı nasıl anlaşılır?

aşağı yukarı şöyle:

 #ifndef __MY_MACROS__   // если макрос не использован
   #define __MY_MACROS__
//----------------------------------------
// тут ваш код использующий макрос
//----------------------------------------
#endif // __MY_MACROS__
 
coderex :

aşağı yukarı şöyle:

başka bir şey demek istedim
 #define MACROS(A) A

void Func()
{
  MACROS(A) // Если закомментировать, то макрос ни разу не использовался
}

// Вот здесь хотелось бы понять, использовался ли хоть раз макрос или нет.
 
OnInit'in tanımlı olup olmadığını kaynakta nasıl kontrol edeceğimi bulmama yardım et?
 
fxsaber :
başka bir şey demek istedim
En basiti, makronun kendisinden üzerine yazılan global değişkendeki makro çağrı sayısıdır.
 
Sergei Vladimirov :
En basiti, makronun kendisinden üzerine yazılan global değişkendeki makro çağrı sayısıdır.
Böyle bir seçenek var ama ne yazık ki tüm makrolar için uygun değil.