Ошибки, баги, вопросы - страница 2973

 
Denis Kirichenko:

Уважаемые разработчики, прошу проверить, правильно ли в <Arrays\ArrayObj.mqh> что:

Формально ошибки нет. В данном случае virtual подразумевается, даже если не указан явно

 
A100:

Формально ошибки нет. В данном случае virtual подразумевается, даже если не указан явно

Спасибо. Но хотелось бы синтаксического однообразия. Ведь к примеру уже есть:

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 полно экспертов

11

но протестировать могу только первые 6

11

что не так? и что делать?

 

Ошибка CryptDecode(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 создаёт строку, которую потом CryptDecodeA не может расшифровать и выдаёт ошибку в мт4: "4029", в мт5: "4006"

Строка с журнала: vj9jDk+GxxB4W1zQc4/rC4OPvttMcgcF5ZFVC7m7l50=

Если убрать последнее "="- тогда расшифрует и ошибки нет.

При этом, php расшифровывает нормально и правильно:

$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;

---

Шифруем на сервере ту-же строку: "indicator_chart_window"

Получаем результат: "vj9jDk+GxxB4W1zQc4/rC54fEtkLAsAONkyeprqmMlw="

Вставляем эту строку в mql-код и снова ошибка - убираем последнее "=" и всё работает нормально.

---

Поставил какой-то случайный ключ шифрования, на сервере строка получилась: "8CpXr3OlVhGs41syHA0+HqZKnatswQjRWn2fKYN4qN4=="

Вставил строку в mql-код - ошибка, убрал одно "=" оставив только одно - сработало нормально (какой был ключ что создалась строка с двумя равно - воспроизвести не смог)

Хочу получить ответ, может что делаю не так!

 

Не освобождается память при оптимизации.

На скрине показано потребление памяти при использовании только одного агента в процессе оптимизации:

Баг связан со схожей конструкцией как ниже в коде, тут баг не проявляется:

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()
  {
  }
//+------------------------------------------------------------------+

Какие мысли по этому поводу?

 
Denis Nikolaev:

В папке Market полно экспертов

но протестировать могу только первые 6

что не так? и что делать?

Это четвёрка. Достигли предельного количества.

 

Почему вместо test.mq5 компилируется test.mqproj ? при том что проект test.mqproj закрыт

Только удаление файла test.mqproj вернуло все на свои места
 

Можно ли в кодебазу загрузить png-файл в папку MQL/Images?

png-файлы вроде разрешены, но почему-то они не отправляются на сервер - после отправки формы png-файлов нет в перечне загруженных.

 
Artyom Trishkin:

Это четвёрка. Достигли предельного количества.

Благодарю Вас, Артем. Очистка помогла.

 
Stanislav Korotky:

Можно ли в кодебазу загрузить png-файл в папку MQL/Images?

png-файлы вроде разрешены, но почему-то они не отправляются на сервер - после отправки формы png-файлов нет в перечне загруженных.

Дополню. По аналогии с EasyAndFastGUI (https://www.mql5.com/ru/code/19703) заархивировал все картинки в zip-файл и загрузил его в MQL5/Images. Zip-архив на сервере прописался, но компиляция все равно не проходит - говорит не видит ресурсных файлов. Вопрос: как же тогда удалось пройти компиляцию EasyAndFastGUI?

Или нужно опять просить модераторов вручную пропихнуть сабмит (https://www.mql5.com/en/code/33770/ - публично недоступен)?

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