Hatalar, hatalar, sorular - sayfa 2955

 

Ve nasıl olunur? Paketleme ve paket açma verileri düzgün çalışmıyor:

Bu bir test

 void OnStart ()
  {
   uchar my_array_in[];
   uchar my_array_out[];
   uchar my_array_test[];
   const uchar key[]= { 0 , 0 , 0 , 0 };

   for ( int i1= 0 ; i1< 100 ; i1++)
     {
       int size= 777 +i1* 1024 +i1* 3 +i1;
       ArrayResize (my_array_in,size);
       for ( int i2= 0 ; i2<size; i2++)
        {
         my_array_in[i2]= uchar (i2* 5956 );
        }
       ResetLastError ();
       int size_out= CryptEncode ( CRYPT_ARCH_ZIP ,my_array_in,key,my_array_out);
       if (size_out== 0 )
        {
         Print (" CryptEncode : индекс ",i1,"   ошибка ","  ", GetLastError ());
         continue ;
        }
       ArrayResize (my_array_out,size_out);
       ResetLastError ();
       int size_test= CryptDecode ( CRYPT_ARCH_ZIP ,my_array_out,key,my_array_test);
       if (size_test== 0 )
        {
         Print (" CryptDecode : индекс ",i1,"   ошибка ","  ", GetLastError ());
        }
       else
         if (size_test!=size)
           {
             Print (" CryptDecode : индекс ",i1,"   не верный размер");
           }
         else
           {
             for ( int i2= 0 ; i2<size; i2++)
              {
               if (my_array_in[i2]!=my_array_test[i2])
                 {
                   Print (" CryptDecode : индекс ",i1,"   ошибка в данных");
                   break ;
                 }
              }
           }
     }
  }

Sonuç. 4001 - Beklenmeyen dahili hata

 2021.02 . 08 16 : 37 : 05.648 Test4 (EURUSD,M1)       CryptDecode : индекс 66    ошибка   4001
2021.02 . 08 16 : 37 : 05.649 Test4 (EURUSD,M1)       CryptDecode : индекс 68    ошибка   4001
2021.02 . 08 16 : 37 : 05.650 Test4 (EURUSD,M1)       CryptDecode : индекс 70    ошибка   4001
2021.02 . 08 16 : 37 : 05.650 Test4 (EURUSD,M1)       CryptDecode : индекс 72    ошибка   4001
2021.02 . 08 16 : 37 : 05.651 Test4 (EURUSD,M1)       CryptDecode : индекс 74    ошибка   4001
2021.02 . 08 16 : 37 : 05.652 Test4 (EURUSD,M1)       CryptDecode : индекс 76    ошибка   4001
2021.02 . 08 16 : 37 : 05.653 Test4 (EURUSD,M1)       CryptDecode : индекс 78    ошибка   4001
2021.02 . 08 16 : 37 : 05.654 Test4 (EURUSD,M1)       CryptDecode : индекс 80    ошибка   4001
2021.02 . 08 16 : 37 : 05.655 Test4 (EURUSD,M1)       CryptDecode : индекс 82    ошибка   4001
2021.02 . 08 16 : 37 : 05.656 Test4 (EURUSD,M1)       CryptDecode : индекс 84    ошибка   4001
2021.02 . 08 16 : 37 : 05.657 Test4 (EURUSD,M1)       CryptDecode : индекс 86    ошибка   4001
2021.02 . 08 16 : 37 : 05.658 Test4 (EURUSD,M1)       CryptDecode : индекс 88    ошибка   4001
2021.02 . 08 16 : 37 : 05.659 Test4 (EURUSD,M1)       CryptDecode : индекс 90    ошибка   4001
2021.02 . 08 16 : 37 : 05.660 Test4 (EURUSD,M1)       CryptDecode : индекс 92    ошибка   4001
2021.02 . 08 16 : 37 : 05.661 Test4 (EURUSD,M1)       CryptDecode : индекс 94    ошибка   4001
2021.02 . 08 16 : 37 : 05.662 Test4 (EURUSD,M1)       CryptDecode : индекс 96    ошибка   4001
2021.02 . 08 16 : 37 : 05.663 Test4 (EURUSD,M1)       CryptDecode : индекс 98    ошибка   4001
Geliştiricilerden bu sorunu çözmelerini rica ediyorum.
 
DMITRII PECHERITSA :

Genel durumda, her iki seçenek de uygun değildir, çünkü yöntemler sanaldır ve türetilmiş sınıfta yöntem geçersiz kılınır ve zaten başka bir şey tarafından işgal edilir.

Ve bazı özel durumlarda, dersler olmadan da yapabilirsiniz.

 
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

ushort a;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   a= 0 ;
//---
   return ( INIT_SUCCEEDED );
  }


İfade değerlendirilemedi hatası

Neden değişkeni göremiyor?

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.02.08
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
Dosyalar:
5555.png  128 kb
 
Борис Крутов :


İfade değerlendirilemedi hatası

Neden değişkeni göremiyor?

Gereksiz (boş, kullanılmayan) değişkenlerin agresif kesilmesi nedeniyle düşünüyorum.

Misal:

 //+------------------------------------------------------------------+
//|                                                     Expert 1.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//--- input parameters
input int    Input1= 9 ;
//---
ushort    ushort_d = 19 ;
uint      uint_d   = 119 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   ushort_d= 8 ;
   uint_d= GetTickCount ();
   int d= 9 ;
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
  }
//+------------------------------------------------------------------+

' ushort_d 'nin ne değerlendirildiğini ne de kullanıldığını görüyoruz, ' uint_d ' ise en azından değerlendiriliyor:


Dosyalar:
Expert_1.mq5  2 kb
 

Belki burada değil.

Forum sayfalarını görüntüleme ve görüntülendi işaretleme (yazı tipini kalından normale çevirme) telefondaki tarayıcıdan ve daha sonra bilgisayarda görüntüleme çalışmıyor. Telefonda daha sonraki tüm kuralları görüntüleme.

Farklı adreslerden bilgisayarlarda, tüm kurallara giriş yapın. Evde, köyde, sonra ofiste görüntüleme)))

Windows 7'de Chrome. Siteye giriş yapılır, kromlar da tek bir hesaba giriş yapılır.

Apex başlatıcısı ve ayrıca kromu olan bir Android 6 telefonda. Siteye giriş yapılır, chrome da bilgisayarlarda olduğu gibi aynı hesaba giriş yapılır.

 
Vladimir Karputov :

Gereksiz (boş, kullanılmayan) değişkenlerin agresif kesilmesi nedeniyle düşünüyorum.

Misal:

' ushort_d 'nin ne değerlendirildiğini ne de kullanıldığını görüyoruz, ' uint_d ' ise en azından değerlendiriliyor:


***

Bu da işe yaramıyor. Ve ushort'u int olarak değiştirirseniz, değişkeni görür.

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.02.09
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
Boris :

***

Bu da işe yaramıyor. Ve ushort'u int olarak değiştirirseniz, değişkeni görür.

Kodu doğru şekilde yapıştırın (düğmesini kullanın kod ).

 
Vladimir Karputov :

Kodu doğru şekilde yapıştırın (düğmeyi kullanın).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"



ushort = GetTickCount64 ();
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
a= GetTickCount64 ();
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  a=a++;
   Comment ( "a: " ,a, "/n" );
}
Исправил
 
Boris :

Çok sayıda hata nedeniyle kod derlenmiyor. Kodu düzeltin.

 
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"



ushort a;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
a=( ushort ) GetTickCount ();
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  a++;
   Comment ( "a: " ,a, "/n" );
}
Vladimir Karputov :

Çok sayıda hata nedeniyle kod derlenmiyor. Kodu düzeltin.

düzeltildi