Hatalar, hatalar, sorular - sayfa 1220

 

Açıklamada veya uygulamada hata '\n'

 void OnStart ()
{
         ushort ch = '\n' ;
         Print ( int (ch) );
}

Sonuç: 10, ancak açıklamada - 13

https://www.mql5.com/ru/docs/basis/types/integer/symbolconstants

 

const bir diziye değil, bir işaretçiye atıfta bulunduğunda, const işaretçileri dizisi yeniden boyutlandırılamıyor ( ArrayResize )

 class A {};
void f()
{
        const A * array1[];
              A * array2[];
         ArrayResize ( array1, 1 ); //ошибка компиляции
        ArrayResize ( array2, 1 );
}
const yerine mümkündür. Fark ne?
 

Bellek sızıntısı,

 class XYZ {
};
class A {
public :
};
void OnStart ()
{
        A *a = new A();
}

Sonuç:

ama... nesne XYZ - oluşturulmadı! Bazen className doğru olduğundan, muhtemelen yanlış olan yalnızca isim değildir.

 

Çalışma Zamanı Hatası: kilitlenme

 class A {
public :
           void     operator =( A* a ) { f( a ); }
    virtual void           f( A* a ) {}
};
class B : public A {
public :
    virtual void           f( A* a ) {}
                A        *g() { return ( new B() ); }
};
void OnStart ()
{
        B b;
        B c = b.g();
}

989 inşa

 

Bu seçenek neden MQL'de çalışmıyor?

 static const int size= 10 ;
int array[size];
 
A100 :

Çalışma Zamanı Hatası: kilitlenme

969 inşa

Mesajlar için teşekkürler! Hadi kontrol edelim
 
İyi günler, sitede böyle bir resim olan bir ben miyim yoksa herkeste var mı?,)
 
Mechanic :
İyi günler, sitede böyle bir resim olan bir ben miyim yoksa herkeste var mı?,)
Üzgünüm, görünüşe göre sadece bende var - bugün bilgisayarı temizlemem gerekiyor
 
meat :

Bu seçenek neden MQL'de çalışmıyor?

Aksi takdirde const hesaplanabilir hale getirilemez

 int f() { return ( 1 ); }
static const int size = f();

void OnStart ()
{
         int array[];
         ArrayResize ( array, size );
}
 

Hata

Telefon etmek:

 Bars ( Symbol (), PERIOD_D1 );

bir günlük mesajıyla sonuçlanır:

HistoryBase 'RTS-12.14' 1 geçersiz çubuk kaldırıldı


Bu hatadan zaten bıktım. Diğer şeylerin yanı sıra, iletişim kanalını yükler.

Aynı hata, tanımlanmamış başka nedenlerle de ortaya çıkıyor.

Ancak, ilginç bir şekilde, diğer birçok enstrümanda görünmüyor. En önemlisi RTS vadeli işlemlerinde ortaya çıkıyor.


Servis masasına birkaç ay önce yazdım - cevap hayır ( Uygulama başladı: 2014.07.28 13:41 , #1046215) .


Mevcut (ve geçmiş) RTS vadeli işlemlerinin (broker "O..." ile demo hesabı) her işaretinde bu hataya neden olan hindi kodunu ekliyorum:

 #property version    "1.00"
#property indicator_separate_window
int OnInit (){ return ( INIT_SUCCEEDED );}
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
   Bars ( Symbol (), PERIOD_D1 );
   return (rates_total);
}

Bu terminalde bir hata mı? Yoksa komisyoncu mu? Veya ben?

Ne yapalım? D1 zaman dilimindeki çubuk sayısını başka nasıl öğrenebilirsiniz?