- Codes de Retour du Serveur de Trading
- Avertissements du Compilateur
- Erreurs de Compilation
- Erreurs d'Exécution
Erreurs de Compilation
MetaEditor 5 affiche les messages des erreurs des programmes détectées pendant la compilation par le compilateur intégré. La liste de ces erreurs est donnée ci-dessous dans le tableau. Pour compile un code source en un fichier exécutable, appuyez sur la touche F7. Les programmes qui contiennent des erreurs ne peuvent pas être compilés tant que les erreurs identifiées par le compilateur ne sont pas corrigées.
Code |
Description |
---|---|
Erreur de lecture du fichier |
|
Erreur d'ouverture d'un fichier *. EX5 en écriture |
|
Pas assez de mémoire pour terminer la compilation |
|
Unité syntaxique vide non reconnue par le compilateur |
|
Nom de fichier incorrect dans #include |
|
Erreur d'accès au fichier spécifié dans le #include (le fichier n'existe probablement pas) |
|
Nom inapproprié pour le #define |
|
Commande de préprocesseur inconnue (valider les #include, #define, #property, #import) |
|
Symbole inconnu pour le compilateur |
|
Fonction non implémentée (la description est présente, mais pas le corps de la fonction) |
|
Il manque un guillemet (double quote - ") |
|
Il manque un chevron (<) ou un guillemet (") |
|
Il manque une apostrophe (single quote - ') omitted |
|
Il manque un chevron ">" |
|
Type non spécifié dans la déclaration |
|
Aucun opérateur de retour, ou return n'existe pas dans toutes les branches de l'implémentation |
|
Parenthèse ouvrante attendue |
|
Erreur d'écriture du fichier EX5 |
|
Accès invalide à un tableau |
|
La fonction n'est pas de type void et l'opérateur return doit retourner une valeur |
|
Déclaration incorrecte du destructeur |
|
Symbole ":" manquant |
|
Variable déjà déclarée |
|
Une variable avec cet identifiant existe déjà |
|
Nom de la variable trop long (> 250 caractères) |
|
Une structure avec cet identifiant est déjà définie |
|
La structure n'est pas définie |
|
Un membre de la structure est déja défini avec ce nom |
|
Pas de membre de la structure avec ce nom |
|
Les parenthèses ne correspondent pas |
|
Parenthèse ouvrant "(" attendue |
|
Parenthèse fermante manquante |
|
Trop difficile à compiler (trop de branchements, niveaux de pile interne sur-remplis) |
|
Erreur d'ouverture du fichier en lecture |
|
Pas assez de mémoire pour télécharger le fichier source en mémoire |
|
Variable attendue |
|
La référence ne peut pas être initialisée |
|
Assignement attendu (apparaît à la déclaration) |
|
Parenthèse ouvrante "{" attendue |
|
Le paramètre ne peut être qu'un tableau dynamique |
|
Utilisation impossible du type "void" |
|
Parenthèse ou crochet ouvrant manquant |
|
Parenthèse ou crochet fermant manquant |
|
Taille de tableau incorrecte |
|
Trop de paramètres (> 64) |
|
Cet élément n'est pas attendu ici |
|
Utilisation incorrecte de l'opération (opérandes invalides) |
|
Expression de type void non autorisée |
|
Opérateur attendu |
|
Mauvaise utilisation de break |
|
Point virgule ";" attendu |
|
Virgule "," attendue |
|
Doit être de type class, et non pas struct |
|
Expression attendue |
|
Caractère non hexadécimal trouvé dans HEX ou nombre trop grand (nombre de chiffres > 511) |
|
Chaîne de caractères constante de plus de 65534 caractères |
|
Une définition de fonction n'est pas possible ici |
|
Fin du programme non attendue |
|
Les déclarations forward sont interdites pour les structures |
|
Une fonction avec ce nom est déjà définie et a un autre type de retour |
|
Une fonction avec ce nom est déjà définie et a un ensemble de paramètres différent |
|
Une fonction avec ce nom est déjà définie et est déjà implémentée |
|
La surcharge de fonction pour cet appel n'a pas été trouvé |
|
Une fonction avec une valeur de retour de type void ne peut pas retourner de valeur |
|
Fonction non définie |
|
Valeur attendue |
|
Dans une expression case, seules des constantes de type integer sont valides |
|
La valeur du case dans ce switch est déjà utilisée |
|
Integer attendu |
|
Dans l'expression #import, un nom de fichier est attendu |
|
Les expressions ne sont pas autorisées au niveau global |
|
Parenthèse fermante ")" manquante avant ";" |
|
Une variable est attendue à gauche du signe d'égalité |
|
Le résultat de l'expression n'est pas utilisé |
|
Les déclarations de variables ne sont pas autorisées dans un case |
|
Conversion implicite d'une chaîne de caractères en nombre |
|
Conversion implicite d'un nombre en une chaîne de caractères |
|
Appel ambigu à une fonction surchargée (plusieurs surcharges conviennent) |
|
else illégal sans if correspondant |
|
case invalide ou default sans switch |
|
Utilisation inappropriée d'une ellipse |
|
La séquence d'initialisation a plus d'éléments que la variable initialisée |
|
Constante attendue pour le case |
|
Expression constante attendue |
|
Une variable constante ne peut pas être modifiée |
|
Parenthèse fermante ou virgule attendue (lors de la déclaration d'un membre du tableau) |
|
Identifiant d'énumération déjà défini |
|
Une énumération ne peut pas avoir de modificateurs d'accès (const, extern, static) |
|
Membre d'énumération déjà déclaré avec une valeur différente |
|
Une variable avec ce nom est déjà définie |
|
Une structure avec ce nom est déjà définie |
|
Nom du membre de l'énumération attendu |
|
Expression de type integer attendue |
|
Division par zéro dans une expression constante |
|
Nombre incorrect de paramètres dans la fonction |
|
Le paramètre par référence doit être une variable |
|
Une variable de même type passée par référence attendue |
|
Une variable constante ne peut pas être passée par une référence non constante |
|
Nécessite une constante integer positive |
|
Echec d'accès au membre protected de la classe |
|
Import déjà défini d'une autre façon |
|
Fichier exécutable non créé |
|
Point d'entrée 'OnCalculate' entry non trouvé pour l'indicateur |
|
L'opération continue ne peut être utilisée que dans une boucle |
|
Erreur d'accès à un membre privé de classe |
|
Méthode de structure ou de classe non déclarée |
|
Erreur d'accès à une méthode privée de classe |
|
Copie de structures contenant des objets non autorisée |
|
Indice en dehors de l'intervalle du tableau |
|
Initialisation du tableau dans la déclaration d'une classe ou d'une structure non autorisée |
|
Le constructeur de classe ne peut pas avoir de paramètres |
|
Un destructeur de classe ne peut pas avoir de paramètres |
|
Une méthode de classe ou de structure avec le même nom et les mêmes paramètres est déjà déclarée |
|
Opérande attendue |
|
Une méthode de class ou de structure avec le même nom existe déjà, mais avec des paramètres différents (déclaration!=implémentation) |
|
Fonction importée non décrite |
|
ZeroMemory() n'est pas autorisée pour les objets ayant des membres protected ou ayant de l'héritage |
|
Appel ambigu à la surcharge de fonction (correspondance exacte des paramètres pour plusieurs surcharges) |
|
Nom de variable attendu |
|
Une référence ne peut pas être déclarée ici |
|
Déjà utilisé comme nom de l'énumération |
|
Classe ou structure attendue |
|
Ne peut appeler l'opérateur 'delete' pour supprimer le tableau |
|
Opérateur ' while' attendu |
|
L'opérateur 'delete' doit avoir un pointeur |
|
'default' déjà existant pour ce 'switch' |
|
Erreur de syntaxe |
|
Une séquence d'échappement ne peut apparaître que dans une chaîne de caractères (commence avec '\') |
|
Tableau requis - le crochet ouvrant '[' ne s'applique pas à un tableau, ou autre chose qu'un tableau est passé comme paramètre au tableau |
|
Ne peut pas être initialisé avec la liste d'initialisation |
|
Import non défini |
|
Erreur d'optimisation sur l'arbre syntaxique |
|
Trop de structures déclarées (essayez de simplifier le programme) |
|
Conversion du paramètre non autorisée |
|
Utilisation incorrecte de l'opérateur 'delete' |
|
Il n'est pas autorisé de déclarer un pointeur sur une référence |
|
Il n'est pas autorisé de déclarer une référence sur une référence |
|
Il n'est pas autorisé de déclarer un pointeur sur un pointeur |
|
La déclaration de structure dans la liste des paramètres n'est pas autorisée |
|
Opération de casting de type invalide |
|
Un pointeur ne peut être déclaré que pour une classe ou une structure |
|
Identifiant non déclaré |
|
Erreur d'optimisation du code exécutable |
|
Erreur de génération du code exécutable |
|
Expression invalide pour l'opérateur 'switch' |
|
Pool de constantes de type chaînes de caractères rempli, simplifiez le programme |
|
Impossible de convertir vers une énumération |
|
Ne pas utiliser 'virtual' pour les données (membres de classe ou de structure) |
|
Ne peut pas appeler une méthode protected de classe |
|
Fonctions virtuelles surchargées avec des types de retour différents |
|
Une classe ne peut pas dériver d'une structure |
|
Une structure ne peut pas dériver d'une classe |
|
Un constructeur ne peut être virtuel (le spécificateur virtual n'est pas autorisé) |
|
Une méthode d'une structure ne peut pas être virtuelle |
|
La fonction doit avoir un corps |
|
La surcharge de fonctions système (fonctions du terminal) n'est pas autorisée |
|
Spécificateur Const invalide pour les fonctions non membres d'une classe ou d'une structure |
|
Impossible de changer un membre de classe dans une méthode constante |
|
Séquence d'initialisation inappropriée |
|
Valeur par défaut manquante pour le paramètre (déclaration spécifique des paramètres par défaut) |
|
Surcharge du paramètre par défaut (différentes valeurs dans la déclaration et dans l'implémentation) |
|
Il n'est pas autorisé d'appeler une méthode non constante pour un objet constant |
|
Un objet est nécessaire pour accéder aux membres |
|
Le nom d'une structure déjà déclarée ne peut pas être utilisé dans la déclaration |
|
Conversion non autorisée (héritage fermé) |
|
Les structures et tableaux ne peuvent pas être utilisés comme variables d'entrée |
|
Le spécificateur const n'est pas valide pour les constructeurs/destructeurs |
|
Expression de chaîne de caractères incorrecte pour une datetime |
|
Propriété inconnue (#property) |
|
Valeur de propriété incorrecte |
|
Indice de propriété invalide dans #property |
|
Paramètre d'appel manquant - <func (x,)> |
|
L'objet doit être passé par référence |
|
Le tableau doit être passé par référence |
|
La fonction est déclarée comme exportable |
|
La fonction n'est pas déclarée comme exportable |
|
Il est interdit d'exporter une fonction importée |
|
Les fonctions importées ne peuvent pas avoir ce paramètre (il est interdit de passer un pointeur, une classe ou une structure contenant un tableau dynamique, un pointeur, une classe, etc.) |
|
Doit être une classe |
|
#import non fermé |
|
Les types ne correspondent pas |
|
Variable externe déjà initialisée |
|
Aucune fonction exportée ou point d'entrée trouvé |
|
L'appel à un constructeur explicite n'est pas autorisé |
|
Méthode déclarée comme constante |
|
Méthode non déclarée comme constante |
|
Taille incorrecte du fichier de ressource |
|
Nom de ressource incorrect |
|
Erreur d'ouverture du fichier de ressource |
|
Erreur de lecture du fichier de ressource |
|
Type de ressource inconnu |
|
Chemin vers le fichier de ressorce incorrect |
|
Le nom spécifié de la ressource est déjà utilisé |
|
Argument attendu pour la macro |
|
Symbole inattendu dans la définition de la macro |
|
Erreur dans les paramètres de la macro |
|
Nombre invalide de paramètres pour la macro |
|
Trop de paramètres pour la macro |
|
Trop complexe, simplifiez la macro |
|
Le paramètre pour EnumToString() ne peut être qu'une énumération |
|
Le nom de la ressource est trop long |
|
Format d'image non supporté (seul les BMP en 24 ou 32 bits sont supportées) |
|
Un tableau ne peut être déclaré dans un opérateur |
|
La fonction ne peut être déclarée qu'au niveau global |
|
La déclaration n'est pas autorisée dans la portée actuelle |
|
L'initialisation de variables statiques avec les valeurs de variables locales n'est pas autorisée |
|
Déclaration illégale d'un tableau d'objets n'ayant pas de constructeur par défaut |
|
Les listes d'initialisation ne sont autorisées que dans les constructeurs |
|
Pas de définition de fonction avec la liste d'initialisation |
|
L'initialisation d'un tableau dans un constructeur n'est pas autorisée |
|
L'initialisation de membres d'une classe parente dans la liste d'initialisation n'est pas autorisée |
|
Expression de type integer type attendue |
|
La mémoire requise pour le tableau excède la valeur maximum |
|
La mémoire requise pour la structure excède la valeur maximum |
|
La mémoire requise pour les variables déclarées au niveau global excède la valeur maximum |
|
La mémoire requise pour les variables locales excède la valeur maximum |
|
Constructeur non défini |
|
Nom invalide pour le fichier d'icone |
|
Impossible d'ouvrir le fichier d'iconeavec le chemin spécifié |
|
Le fichier d'icone est incorrect est n'est pas au format ICO |
|
Réinitialisation d'un membre dans le constructeur de la classe/structure par la liste d'initialisation |
|
L'initialisation de membres statiques dans la liste d'initialisation du constructeur n'est pas autorisée |
|
L'initialisation d'un membre non-statique d'une classe/structure à un niveau global n'est pas autorisée |
|
Le nom de la méthode de la classe/structure correspond au nom d'un membre déclaré auparavant |
|
Le nom d'un membre de la classe/structure correspond au nom d'une méthode déclarée auparavant |
|
Une fonction virtuelle ne peut pas être déclarée comme statique |
|
Le modificateur const n'est pas autorisé pour les fonctions statiques |
|
Un constructeur ou un destructeur ne peut pas être statique |
|
Un membre ou une méthode non statique d'une classe ou d'une structure ne peut pas être accédée depuis une fonction statique |
|
Une surcharge (+,-,[],++,--, etc.) est attendue après le mot-clé operator |
|
Toutes les opérations ne peuvent pas être surchargées en MQL5 |
|
La définition ne correspond pas à la déclaration |
|
Un nombre invalide de paramètres est spécifié pour l'opérateur |
|
Fonction de gestion d'évènement non trouvée |
|
La méthode ne peut pas être exportée |
|
Un pointeur sur un objet constant ne peut pas être normalisé par un objet non constant |
|
Les templates de classe ne sont pas encore supportés |
|
La surcharge d'un template de fonction n'est pas encore supporté |
|
Le template de fonction ne peut pas être appliqué |
|
Paramètre ambigu dans le template de fonction (plusieurs types de paramètres peuvent être appliqués) |
|
Impossible de déterminer le type du paramètre avec lequel l'argument de la fonction templatée devrait être appelée |
|
Nombre incorrect de paramètres dans le template de la fonction |
|
Un template de fonction ne peut pas être virtuel |
|
Les templates de fonctions ne peuvent pas être exportés |
|
Les templates de fonctions ne peuvent pas être importés |
|
Les structures contenant des objets ne sont pas autorisées |
|
Les tableaux de chaînes de caractères et les structures contenant des objets ne sont pas autorisés |
|
Un membre statique de classe/structure doit être initialisé explicitement |
|
Limitation du compilateur : une chaîne de caractères ne peut pas contenir plus de 65 535 caractères |
|
#ifdef/#endif inconsistents |
|
Un objet de cette classe ne peut pas être retourné car aucun constructeur par copie n'existe |
|
Les membres et méthodes non statiques ne peuvent pas être utilisés |
|
Impossible d'utiliser OnTesterInit() sans OnTesterDeinit() |
|
Redéfinition du paramètre formel '%s' |
|
Les macros __FUNCSIG__ et __FUNCTION__ ne peuvent pas apparaître en dehors du corps d'une fonction |
|
Type de retour invalide Par exemple, cette erreur sera produite pour les fonctions importées de DLL retournant une structure ou un pointeur. |
|
Erreur d'utilisation du template |
|
Non utilisé |
|
Syntaxe illégale lors de la déclaration d'une fonction virtuelle pure, seuls "=NULL" ou "=0" sont autorisés |
|
Seules les fonctions virtuelles peuvent être déclarées avec le spécificateur pure ("=NULL" ou "=0") |
|
Une classe abstraite ne peut pas être instanciée |
|
Un pointeur sur un type utilisateur devrait être mis comme type de destination pour un cast dynamique en utilisant l'opérateur dynamic_cast |
|
Un type "pointeur sur fonction" est attendu |
|
Les pointeurs sur méthodes ne sont pas supportés |
|
Erreur ne peut pas définir le type d'un pointeur sur une fonction |
|
La cast de type n'est pas possible en raison de l'héritage privé |
|
Une variable avec le modificateur const doit être initialisée pendant la déclaration |
|
Seules les méthodes avec un accès public peuvent être déclarées dans une interface |
|
Imbrication invalide d'une interface dans une autre interface |
|
Une interface ne peut dériver que d'une autre interface |
|
Une interface est attendue |
|
Les interfaces ne supportent que l'héritage public |
|
Une interface ne peut pas contenir de membres |
|
Les objets interface ne peuvent pas être créés directement, ils ne peuvent qu'utiliser l'héritage |
|
Un spécificateur ne peut pas être utilisé dans une déclaration de type forward |
|
Héritage de la classe impossible, puisqu'elle est déclarée avec le spécificateur final |
|
Ne peut pas redéfinir une méthode déclarée avec le spécificateur final |
|
Le spécificateur final ne peut être appliqué qu'aux fonctions virtuelles |
|
La méthode marquée avec le spécificateur override ne surcharge aucune fonction de la classe de base |
|
Un spécificateur n'est pas autorisé dans la définition d'une fonction, seulement dans sa déclaration |
|
Ne peut pas convertir le type dans le type demandé |
|
Le type ne peut pas être utilisé pour une variable ressource |
|
Erreur dans le fichier projet |
|
Ne peut pas être utilisé comme membre d'une union |
|
Choix ambigü pour le nom, le contexte d'usage doit être défini explicitement |
|
La structure ne peut pas être utilisée depuis une DLL |
|
Ne peut pas appeler une fonction marquée avec le spécificateur delete |
|
MQL4 non pris en charge. Pour compiler le programme, utilisez MetaEditor dans le dossier d'installation du terminal MetaTrader 4 |