Hatalar, hatalar, sorular - sayfa 1118

 
Zeleniy :
Anladım, kurulum dosyası bir aydan uzun süredir bende, şimdi yenisini indirdim ve hepsi işe yaradı, kurulum dosyasının da değişeceğini düşünmedim çünkü daha sonra gerekli dosyaları indiriyor.
tam tersine ... yaşlı olan işareti göstermediyse, o zaman neden göstermeye başlasın ki ... bu garip ..
 
micle :
tam tersine ... yaşlı olan işareti göstermediyse, o zaman neden göstermeye başlasın ki ... bu garip ..
Bilmiyorum ama yenisi her zamanki gibi herhangi bir işaret vermeden davrandı ve kurulum dosyalarını indirmeye başladı.
 
Zeleniy :
Bilmiyorum ama yenisi her zamanki gibi herhangi bir işaret vermeden davrandı ve kurulum dosyalarını indirmeye başladı.
Mistik..
 
Zeleniy :
Bilmiyorum ama yenisi her zamanki gibi herhangi bir işaret vermeden davrandı ve kurulum dosyalarını indirmeye başladı.

Daha önce, yükleme işlemi sırasında böyle bir pencerenin görünümünün bilgisayardaki korumayla (görünüşe göre bir sonraki güncellemesiyle bağlantılı olarak) ve bunun gibi sonraki tezahürle ilişkilendirilebileceği gerçeğiyle karşılaştım.

Aynı zamanda, kurulum dosyasının önceden mi yoksa yeni indirilmiş mi olduğu önemli değildi.

Şimdi, her ihtimale karşı, gelecek için not alacağım, bu yeni bağımlılığı benim için (şimdi denemedim).

Ama sorununuzun çözülmesine sevindim.

Bir varsayım olarak: Hatırladığım kadarıyla yakın zamanda MT5 terminalinde bir güncelleme vardı. Belki bu durumda, bir pencerenin görünümü ile proxy verileri girme gereksinimi, kurulum dosyasının eski bir sürümü ve çevrimiçi kurulum süreci arasında bir ilişki vardır.
 

2014.04.04 10:14 tarihli yeni MT5 derlemesinde yapılan değişiklikler listesinden: " 3. Terminal: Bazı durumlarda grafik nesnelerinin çizelgede çizilmemesine neden olan bir hata düzeltildi. " Bilmiyorum geliştiriciler SD #966979'daki isteğimi yerine getirdiyse veya bu başka bir tür düzeltme mi, hatta bir sonraki yapıdaki bazı iyileştirmelerin bir yan etkisi mi, ancak her durumda, şimdi her şey bana uyuyor. Değişiklik günlüğü bunun bir hata olduğunu söylüyor, ancak SD'deki yazışmalarda bana net bir şekilde cevap verdiler: " Bu bir hata değil, kaynakları kurtarmak için bir sınırlama. "

Artık herhangi bir TF'de TA oluşumlarını daha önce olduğu gibi rahatça izleyebilirsiniz.

Teşekkürler, uygulamayı kapatıyorum.

 

Türetilmiş bir sınıfta, yöntem sabitliğini geçersiz kılabilirsiniz (derleme 917)

 class A {
public :
         virtual void f() const {}
         int x;
};
class B : public A {
public :
         virtual void f() /*не const*/ { x = 2 ; }
};
void g( const A* a ) { a.f(); }
void OnStart ()
{
        A *a = new B();
        a.x = 1 ;
	Print( a.x ); //результат = 1
        g( a );
        Print ( a.x ); //результат = 2, а обещали, что g( const A* ) не может менять объект
         delete ( a );
}

bir örnek daha

 class A {
public :
         virtual void f() const { Print ( "1" ); }
};
class B : public A {
public :
         virtual void f()       { Print ( "2" ); }
};
void g( const A* a ) { a.f(); }
void OnStart ()
{
        A *a = new B();
        g( a );
         delete ( a );
}

Sonuç=2 ve C++'da sonuç=1

Hata, türetilmiş bir sınıfta, temel sınıfla aynı ada sahip (kabul edilebilir olan) const olmayan bir yöntem bildirmenin mümkün olması değil, ancak C++'ın bunları farklı kabul etmesi ve MQL'nin B::f( ) A::f() const öğesini geçersiz kılar

 

Print() işlevi , kayan sinyal sinyal olmayan sayıları sinyal olmayan sayılar olarak yazdırır, bu mantıksızdır, çünkü double - her ikisi de normal olarak görüntülenir.

Şamandıralar için şunları yapmanız gerekir: 1) sinyal olmayanlardan Q önekini kaldırın ve ardından sinyal ve sinyal olmayanlar aynı şekilde görüntülenecektir veya 2) S öneki ile çıkış sinyali olanlar. yanlış, lütfen Q öneki olmadan Print () işlevi tarafından görüntülenecek olan, sayı olmayan bir sinyal şamandırasına bir örnek verin

Örneğin, kasıtlı olarak çift sayı olmayan bir sinyal alıyorum, onu yüzdürmek ve Print() aracılığıyla çıktı almak için kullanıyorum. 1. durumda, SNAN, ikinci durumda, QNAN yazdırılır.

 

Burada, test cihazından bir dosyaya veri yazmanın yollarını seçme sürecinde, ortaya çıkan hata budur (uymadığı için kısaltılmıştır):

 2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00    00 : 0x000000013FD1F038
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F04D 498 BCD            mov        rcx, r13
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F04A 41 B001            mov        r8b, 0x1
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F043 80 BD3804000000    cmp        byte [rbp+ 0x438 ], 0x0
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F040 83 C202            add        edx, 0x2
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F03D 418 BD4            mov        edx, r12d
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00    
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F03B EB03              jmp         0x13fd1f040
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00       crash -->   000000013 FD1F038 8 B50FC            mov        edx, [rax- 0x4 ]
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00    
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1F033 4885 C0            test       rax, rax
[cut]
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1EE6E 55                 push       rbp
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1EE67 4 C894018          mov        [rax+ 0x18 ], r8
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1EE63 48895808           mov        [rax+ 0x8 ], rbx
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00                  000000013 FD1EE60 488 BC4            mov        rax, rsp
2014.04 . 08 01 : 47 : 30.531 2013.07 . 01 02 : 10 : 00    Access violation at 0x000000013FD1F038 read to 0x00000003FFFFFFFF

Yani tabii ki bu hatanın benim eğriliğimin doğal bir sonucu olduğunu anlıyorum. Ve her durumda, hızlı bir şekilde çözüldüğü ortaya çıktı (sorun, dize olmayan verileri gerekirse üçüncü bir işlev aracılığıyla FileWrite'a geçirme girişimindeydi - daha ayrıntılı olarak açıklayabilirim). Ancak hata çok net değil ve biraz korkutucu görünüyor :) ve derleyici hiçbir yerde beklendiğini ima etmiyor. Belki de tutturmak için en azından bir tür uyarıya ya da başka bir şeye değer ...

 
Lone_Irbis :

Burada, test cihazından bir dosyaya veri yazmanın yollarını seçme sürecinde, ortaya çıkan hata budur (uymadığı için kısaltılmıştır):

Yani tabii ki bu hatanın benim eğriliğimin doğal bir sonucu olduğunu anlıyorum. Ve her durumda, hızlı bir şekilde çözüldüğü ortaya çıktı (sorun, gerekirse, dize olmayan verileri üçüncü bir işlev aracılığıyla FileWrite'a geçirme girişimindeydi - daha ayrıntılı olarak açıklayabilirim ). Ancak hata çok net değil ve biraz korkutucu görünüyor :) ve derleyici hiçbir yerde beklendiğini ima etmiyor. Belki de tutturmak için en azından bir tür uyarıya ya da başka bir şeye değer ...

Evet, lütfen daha ayrıntılı olarak açıklayın.

Yapı, işletim sistemi, bit derinliği, test cihazı ayarları ile ilgileniyor. Çoğaltmak için kod ekleyin.

Teşekkür ederim.

 

Tamam, elimden geleni yapacağım. Doğru ana geri dönüp çoğaldığı ortaya çıktı, ancak hatayı hemen izole etmek ve ayrı ayrı çoğaltmak mümkün değil..

Yapı: MetaTester 5 x64 yapı 910 (07 Mart 2014) https://dl.dropboxusercontent.com/u/61587787/bugreport/build.png

Eksen Win7 x64 https://dl.dropboxusercontent.com/u/61587787/bugreport/system.png

test penceresinden kopyala-yapıştır: https://dl.dropboxusercontent.com/u/61587787/bugreport/log.txt

test cihazından ekran görüntüleri (asla bilemezsiniz): https://dl.dropboxusercontent.com/u/61587787/bugreport/tester1.png https://dl.dropboxusercontent.com/u/61587787/bugreport/tester2.png

test cihazı ayarları (Ne demek istediğini doğru anlayıp anlamadığımı bilmiyorum): https://dl.dropboxusercontent.com/u/61587787/bugreport/config.png

Koddan alıntı:

   int idx = 133;
   WriteCSV( "test.csv" ,idx);
   
class Core { 
public :  
   void      WriteCSV( string FileName, string s1, string s2, string s3, string s4, string s5, string s6);
};

void Core::WriteCSV( string FileName, string s1, string s2= "" , string s3= "" , string s4= "" , string s5= "" , string s6= "" ){
   int handle = FileOpen (FileName, FILE_CSV | FILE_WRITE | FILE_SHARE_WRITE | FILE_UNICODE | FILE_COMMON , "~" );
   if (handle == INVALID_HANDLE ) Print ( "error" );
   else FileWrite (handle,s1,s2,s3,s4,s5,s6);
   FileClose (handle);
}

WriteCSV( "test.csv" ,(string)idx); ile değiştirilirse; - hata kaybolur. Diğer string olmayan değişkenler burada hiçbir şey yapmaz. idx'in tam olarak ne olduğu bir fark yaratmıyor gibi görünse de (sadece dizideki haberlerin seri numarasıdır). Sonucu kaydetmeye çalışırken herhangi bir haberde çoğaltılır. Uyarılardan yalnızca 'sayı'dan 'dize'ye örtük dönüştürme çıkar, ancak yine, yalnızca bu durumda bir çökmeye dönüşür.

Her nasılsa tüm kodu ve .set'i buraya göndermek istemem ama bir yere gönderebilirim.