Hatalar, hatalar, sorular - sayfa 2973

 
Denis Kirichenko :

Sevgili geliştiriciler, lütfen <Arrays\ArrayObj.mqh> içinde doğru olup olmadığını kontrol edin:

Resmi olarak hata yoktur. Bu durumda, açıkça belirtilmese bile sanal ima edilir.

 
A100 :

Resmi olarak hata yoktur. Bu durumda, açıkça belirtilmese bile sanal ima edilir.

Teşekkür ederim. Ama sözdizimsel tekdüzelik istiyorum. Sonuçta, örneğin, zaten var:

 class CArrayDouble : public CArray
  {

   ...

   protected :
   virtual void       QuickSort( int beg, int end, const int mode= 0 );
  }

//+------------------------------------------------------------------+

class CArrayString : public CArray
   {

   ...

   protected :
   virtual void       QuickSort( int beg, int end, const int mode= 0 );
  }

 

Market klasörü uzmanlarla dolu

on bir

ama sadece ilk 6'yı test edebilirim

on bir

Sorun nedir? ve ne yapmalı?

 

CryptDecode hatası ( CRYPT_BASE64

 int OnInit ()
{
   string text= "" ;
   string res= "" ;
   string key= "fuyTkH3cd63K9Htrl2xdFgjerPjmla8h" ;

   text= "indicator_chart_window" ;
   if (! CryptEncodeA (text,key,res))
       Print ( "Error: Encode:" , GetLastError ());

   Print (res);

   text= " vj9jDk+GxxB4W1zQc4/rC4OPvttMcgcF5ZFVC7m7l50 = " ;
   if (! CryptDecodeA (text,key,res))
       Print ( "Error: Decode:" , GetLastError ());

   Print (res);
   return ( INIT_SUCCEEDED );
}

//------------------------------------------------------------------
bool CryptEncodeA ( string InputText, string key, string &Output) {
   uchar scr[];
   uchar dst[];
   uchar res[];
   uchar key_aes256[];
   uchar key_base64[];
   StringToCharArray (InputText,scr);
   StringToCharArray (key,key_aes256);
   if ( CryptEncode ( CRYPT_AES256 ,scr,key_aes256,dst)== 0 ) return ( false );
   if ( CryptEncode ( CRYPT_BASE64 ,dst,key_base64,res)== 0 ) return ( false );
   Output = CharArrayToString (res);
   return ( true );
}
//--
bool CryptDecodeA ( string InputText, string key, string &Output) {
   uchar scr[];
   uchar dst[];
   uchar res[];
   uchar key_base64[];
   uchar key_aes256[];
   StringToCharArray (InputText,scr);
   StringToCharArray (key,key_aes256);
   if ( CryptDecode ( CRYPT_BASE64 ,scr,key_base64,dst)== 0 ) return ( false );
   if ( CryptDecode ( CRYPT_AES256 ,dst,key_aes256,res)== 0 ) return ( false );
   Output = CharArrayToString (res);
   return ( true );
}

---

CryptEncodeA işlevi, CryptDecodeA'nın daha sonra şifresini çözemeyeceği bir dize oluşturur ve MT4'te bir hata verir: "4029", MT5'te: "4006"

Günlük satırı: vj9jDk+GxxB4W1zQc4/rC4OPvttMcgcF5ZFVC7m7l50=

Son "=" - öğesini kaldırırsanız, şifresi çözülür ve hata olmaz.

Aynı zamanda, php normal ve doğru bir şekilde şifresini çözer:

$secret_key = 'fuyTkH3cd63K9Htrl2xdFgjerPjmla8h';

$s = "indicator_chart_window";
$res = base64_encode(openssl_encrypt($s,"AES-256-ECB",$secret_key,OPENSSL_RAW_DATA));
echo $res.'<br>';

$s= "vj9jDk+GxxB4W1zQc4/rC54fEtkLAsAONkyeprqmMlw=";
$res = openssl_decrypt(base64_decode($s),"AES-256-ECB",$secret_key,OPENSSL_ZERO_PADDING|OPENSSL_RAW_DATA);
echo $res;

---

Aynı satırı sunucuda da şifreliyoruz: "indicator_chart_window"

Şu sonucu alıyoruz: " vj9jDk+GxxB4W1zQc4/rC54fEtkLAsAONkyeprqmMlw= "

Bu satırı mql koduna ekliyoruz ve yine bir hata - son "=" öğesini kaldırıyoruz ve her şey yolunda gidiyor.

---

Sunucuya rastgele bir şifreleme anahtarı koydum, satır çıktı: "8CpXr3OlVhGs41syHA0+HqZKnatswQjRWn2fKYN4qN4 == "

Mql koduna bir satır ekledim - bir hata, birini kaldırdım "=" yalnızca bir tane bırakarak - iyi çalıştı (iki eşittir satırın oluşturulduğu anahtar neydi - yeniden oluşturulamadı)

Bir cevap almak istiyorum, belki yanlış yapıyorum!

 

Optimizasyon sırasında bellek serbest bırakılmaz.

Ekran görüntüsü, optimizasyon sürecinde yalnızca bir aracı kullanıldığında bellek tüketimini gösterir:

Hata, kodda aşağıdakine benzer bir yapıyla ilişkilendirilmiştir, burada hata görünmüyor:

 input int ii; //Для оптимизации
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class My_class
  {
public :
   struct s_Frame_info
     {
       ulong           event_index;
       uchar           frame_id;
       int             data_size;
     };
   struct s_Frame
     {
      s_Frame_info   frame_info;
       uchar           data[];
     };
   s_Frame           _data_local[];

   void               GGG()
     {
       ArrayResize (_data_local, 1024 );
       for ( int i1= 0 ; i1< 1024 ; i1++)
        {
         int len1= ArrayRange (_data_local[i1].data, 0 );
         ArrayResize (_data_local[i1].data,len1+ 1 , 128 * 1024 );
        }
     }
  } *my_class;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {
   my_class= new My_class();
   my_class.GGG();
   return INIT_SUCCEEDED ;
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   my_class._data_local[ 0 ].data[ 0 ]= 0 ;
   delete my_class;
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  }
//+------------------------------------------------------------------+

Bu konudaki düşünceleriniz nelerdir?

 
Denis Nikolaev :

Market klasörü uzmanlarla dolu

ama sadece ilk 6'yı test edebilirim

Sorun nedir? ve ne yapmalı?

Bu bir dört. Sınıra ulaştı.

 

test.mq5 yerine neden test.mqproj derleniyor? test.mqproj projesinin kapalı olmasına rağmen

Yalnızca test.mqproj dosyasının silinmesi her şeyi yerine geri getirdi
 

Kod tabanındaki MQL/Images klasörüne bir png dosyası yüklemek mümkün müdür?

png dosyalarına izin veriliyor gibi görünüyor, ancak bir nedenden dolayı sunucuya gönderilmiyorlar - formu gönderdikten sonra png dosyaları yüklenenler listesinde değil.

 
Artyom Trishkin :

Bu bir dört. Sınıra ulaştı.

Teşekkürler Artem. Temizlik yardımcı oldu.

 
Stanislav Korotky :

Kod tabanındaki MQL/Images klasörüne bir png dosyası yüklemek mümkün müdür?

png dosyalarına izin veriliyor gibi görünüyor, ancak bir nedenden dolayı sunucuya gönderilmiyorlar - formu gönderdikten sonra png dosyaları yüklenenler listesinde değil.

Ekleyeceğim. EasyAndFastGUI'ye benzeterek (https://www.mql5.com/ru/code/19703) Tüm resimleri bir zip dosyasına arşivledim ve MQL5/Images'a yükledim. Zip arşivi sunucuya kaydedildi, ancak derleme hala çalışmıyor - kaynak dosyalarını görmediğini söylüyor. Soru: O halde EasyAndFastGUI'yi derlemeyi nasıl başardınız?

Yoksa moderatörlerden göndermeyi tekrar manuel olarak göndermelerini mi istemem gerekiyor ( https://www.mql5.com/en/code/33770/ - herkese açık değil )?

EasyAndFastGUI - библиотека для создания графических интерфейсов
EasyAndFastGUI - библиотека для создания графических интерфейсов
  • www.mql5.com
Библиотека EasyAndFastGUI дает возможность создавать графические интерфейсы для своих MQL-программ.