2011-05-07 1 views
0

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?

Répondre

4

Ce n'est pas possible comme indiqué dans le MQL Documentation:

fonctions MQL4 bibliothèques importées dans d'autres modules ne peuvent pas avoir des paramètres initialisés par des valeurs par défaut.

Questions connexes