Erreurs, bugs, questions - page 2973

 
A100:

Techniquement, il n'y a pas d'erreur. Dans ce cas, le virtuel est implicite, même s'il n'est pas explicitement mentionné.

Merci. Mais j'aimerais avoir une certaine uniformité syntaxique. Après tout, nous en avons déjà un, par exemple :

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);
  }

 

Le dossier Marché est rempli d'experts

11

mais je ne peux tester que les 6 premiers

11

Qu'est-ce qui ne va pas et que dois-je faire ?

 

CryptDecode(CRYPT_BASE64 erreur

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);
}

---

La fonctionCryptEncodeA crée une ligne que CryptDecodeA ne peut pas décoder et génère l'erreur "4029" dans MT4, "4006" dans MT5.

Ligne de journal : vj9jDk+GxxB4W1zQc4/rC4OPvttMcgcF5ZFVC7m7l50=

Si vous enlevez le dernier "="-alors il se décrypte et il n'y a pas d'erreur.

Dans ce cas, le php se décrypte normalement et correctement :

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

---

On crypte la même ligne sur le serveur : "indicateur_chart_window"

Nous obtenons le résultat :"vj9jDk+GxxB4W1zQc4/rC54fEtkLAsAONkyeprqmMlw="

Insérez cette ligne dans le code mql et l'erreur se reproduit - enlevez le dernier "=" et tout fonctionne bien.

---

Mettez une clé de cryptage aléatoire, le serveur obtient la chaîne : "8CpXr3OlVlVhGs41syHA0+HqZKnatswQjRWn2fKYN4qN4=="

J'ai inséré la chaîne dans le code mql - erreur, j'ai supprimé un "=" pour n'en laisser qu'un - cela a bien fonctionné (quelle était la clé qui a créé la chaîne avec deux égaux - je n'ai pas pu la reproduire).

Je veux une réponse, peut-être que je fais quelque chose de mal !

 

Pas de libération de mémoire pendant l'optimisation.

La capture d'écran montre la consommation de mémoire lors de l'utilisation d'un seul agent pendant l'optimisation :

Le bug est lié à une conception similaire à celle ci-dessous dans le code, le bug n'apparaît pas ici :

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

Des idées à ce sujet ?

 
Denis Nikolaev:

Le dossier Marché est rempli d'experts

mais je ne peux tester que les 6 premiers

Qu'est-ce qui ne va pas et que dois-je faire ?

C'est un quatre. Nous avons atteint la limite du nombre.

 

Pourquoi test.mq5 est-il compilé au lieu de test.mqproj ? alors que le projettest.mqprojest fermé.

Seulement en supprimant le fichiertest.mqproj tout est revenu à la normale
 

Est-il possible de télécharger un fichier png dans le dossier MQL/Images de la base de code ?

Les fichiers png semblent être autorisés, mais pour une raison quelconque, ils ne sont pas envoyés au serveur - après avoir soumis le formulaire, les fichiers png ne figurent pas dans la liste des fichiers téléchargés.

 
Artyom Trishkin:

C'est un quatre. J'ai atteint la limite.

Merci, Artem. Le nettoyage a aidé.

 
Stanislav Korotky:

Est-il possible de télécharger un fichier png dans le dossier MQL/Images de la base de code ?

Les fichiers png semblent être autorisés, mais pour une raison quelconque, ils ne sont pas envoyés au serveur - après avoir soumis le formulaire, les fichiers png ne figurent pas dans la liste des fichiers téléchargés.

Je vais en rajouter. J'ai archivé tous les fichiers comme avec EasyAndFastGUI (https://www.mql5.com/ru/code/19703) et les ai téléchargés dans MQL5/Images. Le fichier zip a été enregistré sur le serveur, mais la compilation ne réussit toujours pas - le serveur dit qu'il ne voit pas les fichiers de ressources. Question : Comment EasyAndFastGUI a-t-il été compilé ?

Ou dois-je demander aux modérateurs de repousser manuellement l'envoi (https://www.mql5.com/en/code/33770/ - publiquement indisponible) ?

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

Impossible d'installer l'utilitaire du Marché à MT4 sur un serveur VPS. Le message suivant est affiché dans le journal :

2021.03.01 23:53:31.809 Marché MQL4 : échec de la connexion à www.mql5.com (www.mql5.com:443 a échoué)

J'ai écrit au service d'assistance de VPS Server. Ils ont vérifié et répondu comme suit :

"Nous avons analysé la situation et constaté que l'accès est bloqué du côté de mql5.com. Nous ne connaissons pas la raison du blocage de votre serveur et de notre côté, nous ne pouvons rien faire pour résoudre cette situation, car cela dépasse notre domaine de responsabilité. Nous vous recommandons de contacter le support technique ou l'administrateur du site.

Pouvez-vous me dire pourquoi mql5 bloque l'IP de mon VPS et ce que l'on peut faire pour y remédier ?



Свяжитесь с нами
Свяжитесь с нами
  • www.mql5.com
Вы можете вести переписку и видеть историю своих обращений в службу поддержки mql5.com, даже если вы не имеете регистрации на сайте.