Hatalar, hatalar, sorular - sayfa 2555

 
TheXpert :
yazma tanıtıcısı için FILE_SHARE_READ ve okuma tanıtıcısı için FILE_SHARE_WRITE ekleyin

Çalışmıyor, yalnızca tabloya asarsanız ayrı ayrı. Kullanılmış:

handle_write= FileOpen ( "checkbox_color.txt" , FILE_WRITE | FILE_SHARE_READ | FILE_TXT , ';' );
handle_read= FileOpen ( "checkbox_color.txt" , FILE_READ | FILE_SHARE_WRITE | FILE_TXT , ';' );
 
Влад :

Çalışmıyor, yalnızca tabloya asarsanız ayrı ayrı. Kullanılmış:

Hepsi karar verdi. Kullanılmış:

handle_write= FileOpen ( "checkbox_color.txt" , FILE_READ | FILE_WRITE | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_TXT , ';' );
handle_read= FileOpen ( "checkbox_color.txt" , FILE_READ | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_TXT , ';' );
 
Yeni bir soru ortaya çıktı. İlk grafikte yukarıdaki türkiye sayesinde değişkeni değiştiriyorum. İkinci grafikte, bilgiler istendiği gibi anında değil, yalnızca zaman dilimleri değiştirilirken görüntülenir. Bu nasıl çözülebilir? RMB'ye basıldığında Yenile ile grafiği aptalca güncellemek yardımcı olmuyor.
 

yapı 2135 genellikle bozuk

 #define abort(ANY) do{printf("abort, file=%s,  line=%i", __FILE__, __LINE__); Alert(1/(uint)MathAbs(0));}while(false)

#define GENERATE_VECTOR_GROWTH_FACTOR 2
#define GENERATE_VECTOR(NAME, REF)                                         \
   template < typename T>                                                   \
   class NAME                                                              \
   {                                                                       \
       uint sz;                                                             \
   public :                                                                 \
      T a[];                                                               \
      NAME(): sz( 0 ) {}                                                     \
      NAME( uint count): sz( 0 ) {                                            \
         if ( ArrayResize ( this .a, count) == - 1 )                             \
            abort(0);                                                      \
         this .sz = count;                                                  \
      }                                                                    \
       uint size() const            { return this .sz;}                         \
       void clear()               { this .sz = 0 ;}                            \
       void push_back(T REF value) {                                        \
         if ( this .sz == ArraySize ( this .a)  &&                              \
             ArrayResize ( this .a, this .sz*                                  \
                           GENERATE_VECTOR_GROWTH_FACTOR+ 1 ) == - 1 )         \
            abort( 0 );                                                      \
         this .a[ this .sz++] = value;                                        \
      }                                                                    \
       void reserve( uint new_cap) {                                         \
         if (( int )new_cap > ArraySize ( this .a))                             \
             ArrayResize ( this .a, new_cap);                                  \
      }                                                                    \
       void erase( uint pos) {                                               \
         if ( ! ArrayRemove ( this .a, ( int )pos, 1 ) )                         \
            abort( 0 );                                                      \
         -- this .sz;                                                       \
      }                                                                    \
   };
#define GENERATE_VECTOR_EMPTY
GENERATE_VECTOR(vector_fund, GENERATE_VECTOR_EMPTY);
GENERATE_VECTOR(vector_ref, const &);
#undef GENERATE_VECTOR_EMPTY
#undef GENERATE_VECTOR_GROWTH_FACTOR
#undef GENERATE_VECTOR

'GENERATE_VECTOR' - unexpected token, probably type is missing?    1_mystd.mqh    74    1

'GENERATE_VECTOR' - beklenmedik belirteç, muhtemelen tür eksik mi? 1_mystd.mqh 75 1

'GENERATE_VECTOR' - değişken zaten tanımlanmış 1_mystd.mqh 75 1

yüz yıl boyunca derlendi, yeni yapıda kırıldı.

 
Vict :

yapı 2135 genellikle bozuk

yüz yıl boyunca derlendi, yeni yapıda kırıldı.

Yalan söylüyorum, her şey yolunda, formda çağrıldığı kürtajlardan birinde
abort();

derleyici onu yerdi, ancak yeni yapıda reddetti, muhtemelen bir şeyler düzeltildi (peki, yanlışlıkla sıfırı silmem olası değil).

 
Derlerken ME'nin işlemcinin 2 çekirdeğini (% 26) yüklediğini fark ettim, soru ortaya çıkıyor - bu çok iş parçacıklı, o zaman neden tüm çekirdekleri derleme için kullanmıyorsunuz yoksa bu kaynakların irrasyonel kullanımı şeklinde bir hata mı?
 
Vict :
Yalan söylüyorum, her şey yolunda, formda çağrıldığı kürtajlardan birinde

derleyici onu yerdi, ancak yeni yapıda reddetti, muhtemelen bir şeyler düzeltildi (peki, yanlışlıkla sıfırı silmem olası değil).

Bu arada, geliştiricilerden tam zamanlı bir kürtaj, iddia getirmelerini istememiz gerekiyor ... İdeal olarak, elbette istisnalar var. Ama en azından küçük başlayın.
 
Alexey Navoykov :
Bu arada, geliştiricilerden tam zamanlı bir kürtaj, iddia getirmelerini istememiz gerekiyor ... İdeal olarak, elbette istisnalar var. Ama en azından küçük başlayın.

tek kelimeyle yanılmıyorsam MQL çalışmalarımın son devresinde bunu sormuştum 4 sene geçmiş holivarı okuryazarlardan dinlemek zorunda kaldım, evet derler, siz dinlemezsiniz. buna ihtiyacım var, böyle yaz ... peki, genel olarak, her şey her zamanki gibi, ancak OHLC verilerine veya bir göstergeye erişimde kritik bir hata varlığında program yürütmesini nasıl bozabilirim... , evet bazı kod yazarları bu koşulları kontrol ediyor ama işlem yok , maksimum kibar bir bakış ile uzmanın loglarına çıktı derler gibi sorun oluştu genel olarak merak etmeyin yanlış verilerle çalışmaya devam edeceğim bu tik )))

Not: kaynar, mevcut keneyi işlemeyi durdurmak için kolay bir yola ihtiyacımız var! - bu, Expert Advisor'ın çalışmasını durdurabileceğiniz, ancak bir onay işareti işlemeyi durdurmak için düşünün ve ondan kurtulabileceğiniz anlamına gelir - Derleyici düzeyinde abort() öğesinin ExpertRemove()'dan daha karmaşık olmadığından şüpheleniyorum - ki bu zaten var

ZYZY: prosedürel bir tarzda abort() olmadan MQL için bir Uzman Danışman yazma görevi, hazır alt programlardan kod eklemekten çok bir buluş gibidir, doğru yükleyebilecek bir göstergenin nasıl yazılacağına dair bu sürekli tartışmalardan şüpheleniyorum başka bir TF kullanarak geçmişi de abort() kullanarak çözmek daha kolay olacaktır - henüz düşünmedim

 
Igor Makanu :

tek kelimeyle yanılmıyorsam bunu MQL çalışmalarımın son döngüsünde sormuştum, holivar okuryazar insanlardan doğruyu dinlemek zorunda kalalı 4 yıl olmuş, evet diyorlar, dinlemiyorsunuz. buna ihtiyacım var, böyle yaz ... peki, genel olarak, her şey her zamanki gibi

Hemen hemen biraz kekeleyeceksiniz, bu okuryazarlar “bu sizin için C ++ değil”) diyerek tüm çatlaklardan hemen çıkacaklar.

mevcut onay işaretini işlemeyi durdurmak için kolay bir yola ihtiyacınız var! - bu, Expert Advisor'ın çalışmasını durdurabileceğiniz, ancak bir onay işareti işlemeyi durdurmak için düşünün ve ondan kurtulabileceğiniz anlamına gelir - Derleyici düzeyinde abort() öğesinin ExpertRemove()'dan daha karmaşık olmadığından şüpheleniyorum - ki bu zaten var

Pekala, burada, yukarıdaki kodda olduğu gibi, sıfıra bölme ile tamamen aynı şekilde uygulanan hem abort hem de assert var. Bu kesinlikle çirkin olsa da ve bazen kafam karışıyor, çünkü Günlükteki önceki mesajı her zaman fark etmem. Belki de günlükte "iç hata" gibi bir şey veren başka bir hata vardır? En azından bu kadar utanç verici görünmezdi)

 
Alexey Navoykov :

Hemen hemen biraz kekeleyeceksiniz, bu okuryazarlar “bu sizin için C ++ değil”) diyerek tüm çatlaklardan hemen çıkacaklar.

Pekala, burada, yukarıdaki kodda olduğu gibi, sıfıra bölme ile tamamen aynı şekilde uygulanan hem abort hem de assert var. Bu kesinlikle çirkin olsa da ve bazen kafam karışıyor, çünkü Günlükteki önceki mesajı her zaman fark etmem. Belki de günlükte "iç hata" gibi bir şey veren başka bir hata vardır? En azından bu kadar utanç verici görünmezdi)

burada @Vict , makro ikameleri yoluyla işletim sistemine çıkışta bir istisna yapılmasına yardımcı oldu https://www.mql5.com/en/forum/318246/page10#comment_12651045

, genel olarak, uygulanabilir bir çözüm, ama ... ama ürkütücü ve iğrenç görünüyor! )))