Je n'arrive pas à comprendre comment définir les valeurs par défaut des fonctions de ma bibliothèque. Les valeurs par défaut ont tendance à être ignorées et je reçois un message d'erreur "nombre de paramètres incorrect".Metatrader MQL4: Impossible de définir les valeurs par défaut des fonctions dans le fichier .mqh
Voici mon exemple. J'ai créé la bibliothèque de test simple experts\libraries\test.mq4
:
void test(int i = 0) // Note the default value for "i"
{
}
Ensuite, je crée le fichier .mqh
comme experts\include\test.mqh
:
#import "test.ex4"
void test(int i = 0); // Note the default value for "i"
#import
Maintenant, je crée expert simple "experts \ simpletest.mq4":
#include <test.mqh>
int start()
{
// Should be able to call test() function without providing any arguments,
// because it has default value.
// If I change this line to test(0), everything compiles correctly
test(); // Causes "wrong parameters count" compilation error
return(0);
}
Et Je reçois l'erreur suivante pour l'appel de la fonction test():
«) » - mauvais paramètres compter
Si je change cet appel de fonction à tester (0), tout est compilé, mais je devrais pouvoir appeler la fonction test() sans fournir de paramètres, parce que je valeur par défaut du premier paramètre dans le fichier .mqh, comme ceci: void test (int i = 0); Pourquoi n'utilise-t-il pas la valeur par défaut?
Je recherche google pour toute idée, mais ne trouve pas de références sur ce problème. Quelqu'un sait?