0

ライブラリ内の関数のデフォルト値を定義する方法がわかりません。デフォルト値は無視される傾向があり、「パラメーター数が間違っています」というエラー メッセージが表示されます。

これが私の例です。簡単なテストライブラリを作成しましたexperts\libraries\test.mq4

void test(int i = 0) // Note the default value for "i"
{
}

次に、.mqhファイルを次のように作成しましたexperts\include\test.mqh

#import "test.ex4"
void test(int i = 0); // Note the default value for "i"
#import

次に、単純なエキスパート「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);
}

そして、test() 関数呼び出しで次のエラーが発生します。

')' - 間違ったパラメーター数

この関数呼び出しを に変更するとtest(0)、すべてがコンパイルさtest()れますが、次のように .mqh ファイルの最初のパラメーターにデフォルト値があるため、パラメーターを指定せずに関数を呼び出すことができるはずです: void test(int i = 0); デフォルト値を使用しないのはなぜですか?

手がかりをグーグルで検索しましたが、この問題に関する参考文献が見つかりません。誰か知ってる?

4

1 に答える 1

4

MQLドキュメントに記載されているように、これは不可能です。

MQL4-他のモジュール内にインポートされたライブラリ関数は、デフォルト値で初期化されたパラメーターを持つことができません。

于 2011-10-05T07:46:43.243 に答える