Erreurs, bugs, questions - page 1123

 

J'ai trouvé une description des erreurs. Mais où puis-je voir les numéros d'erreur ?

Je ne les vois nulle part dans MetaEditor...

 
barabashkakvn:
Vous ne pouvez pas obtenir le numéro de l'erreur de compilation dans MetaEditore, mais lorsqu'une erreur de compilation se produit, il y a une description de l'erreur dans l'onglet "Erreurs". Si vous ne comprenez pas la description, copiez le message et traduisez-le dans le traducteur :).
C'est ce que je fais, mais c'est en quelque sorte "de travers". Je vais essayer de demander au Service Desk d'ajouter une telle colonne dans la fenêtre "Outils" dans l'onglet "Erreurs" de l'éditeur.
 
Fleder:
Oui, mais c'est un peu "de travers". Je vais essayer de demander au Service Desk d'ajouter une telle colonne dans la fenêtre "Outils" dans l'onglet "Erreurs" de l'éditeur.
Les erreurs de compilation sont un nom très fort. Il s'agit plutôt de rapports de surveillance. D'ailleurs, la description de l'erreur est très claire. Personnellement, je pense que le numéro d'erreur ne fait que prendre du temps - copier le numéro d'erreur, puis aller dans l'aide, puis trouver le numéro...
 
Fleder:
Il n'y a aucun intérêt à une boucle infinie. Pour effectuer un nombre limité de tentatives etrenvoyer ensuiteINIT_FAILED dans la fonctionint OnInit() .
C'est logique, mais je ne voudrais pas que l'indicateur se plante à cause d'une telle absurdité. Ok, je vais l'écrire en code.
 

Pensez-vous qu'il serait plus rapide de traduire le texte anglais d'une erreur ou d'un avertissement avec un traducteur google rudimentaire, puis de chercher des correspondances dans l'aide, où ces descriptions sont en russe ?

Et tout le monde ne peut pas comprendre "intuitivement" un message sur un oubli "en bourgeois".

 
Fleder:

Pensez-vous qu'il serait plus rapide de traduire le texte anglais d'une erreur ou d'un avertissement avec un traducteur google rudimentaire, puis de chercher des correspondances dans l'aide, où ces descriptions sont en russe ?

Et tout le monde ne peut pas comprendre "intuitivement" un message sur un oubli "en bourgeois".

Donnez le code (le code est inséré avec le bouton "SRC") et le message d'erreur. L'anglais est la langue officielle dans laquelle les programmes sont écrits dans le monde entier.
 
Fleder:

Pensez-vous qu'il serait plus rapide de traduire le texte anglais d'une erreur ou d'un avertissement avec un traducteur google rudimentaire, puis de chercher des correspondances dans l'aide, où ces descriptions sont en russe ?

Et tout le monde ne peut pas comprendre "intuitivement" le message d'erreur "en bourgeois".

Voici un exemple simple qui montre qu'en ayant commenté un seul symbole, on peut obtenir trois erreurs à la fois.

//+------------------------------------------------------------------+
//|                                                  test_script.mq5 |
//|                              Copyright © 2014, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  //{
//---
   Print(__FUNCTION__);
  }
//+------------------------------------------------------------------+

Vous obtenez trois erreurs en même temps :

'test_script.mq5'       test_script.mq5 1       1
'Print' - semicolon expected    test_script.mq5 15      4
'Print' - declaration without type      test_script.mq5 15      4
'}' - expressions are not allowed on a global scope     test_script.mq5 16      3
3 error(s), 0 warning(s)                4       1                        

Et s'il y avait des numéros d'erreur, pensez-vous qu'il serait plus facile de trouver la source de l'erreur ?

 
barabashkakvn:
Donnez le code (le code est inséré à l'aide du bouton "SRC") et le message d'erreur. L'anglais est la langue officielle dans laquelle les programmes sont écrits dans le monde entier.

Personnellement, je n'ai aucun mal à trouver des erreurs grossières dans le code que le compilateur "jure". Vous non plus, je suppose. Mais qu'en est-il des nouveaux arrivants ?

En fait, si la documentation gère les erreurs de compilation par numéros, il serait raisonnable de fournir

l'occasion de connaître le nombre de ces mêmes erreurs dans l'éditeur lorsque vous les faites au hasard.

 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   float num;
   num=13.7;         //так получаем предупреждение truncation of constant value sample.mq5      9       8
   num=(float)13.7;  //а так всё в порядке
  }
//+------------------------------------------------------------------+

Le compilateur traite le nombre 13,7 comme le type double. Mais en même temps, ce nombre peut être converti sans perte en type flottant.

et cet avertissement est inutile.

 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
  struct ARGB
  {
    uchar blue;
    uchar green;
    uchar red;
    uchar alpha;
  };
  
  struct N
  {
    uint num;
  };
  
  N n={100288};
  ARGB c;
  c=n;         //так получаем предупреждение implicit struct cast       sample.mq5      22      4
  c=(ARGB)n;   //а так всё в порядке
}
Bien que les deux structures aient la même taille et se copient l'une dans l'autre sans perte, nous recevons quand même un avertissement.
Raison: