boolObjectSetInteger(
long chart_id, // идентификатор графика string name, // имя int prop_id, // свойство long prop_value // значение
);
そうでなければならない。
boolObjectSetInteger(
long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_INTEGER prop_id, // свойство long prop_value // значение
);
MT4でこのクラスがコンパイルされ、MT5でコンパイルされないのはなぜですか?
このクラスの演算子定義を削除すると、MT5でコンパイルが開始されます。5のコンパイラのバグと思われます。
を代用してみてください。
__MQL5__
まで
__MQL5BUILD__です。
を代用してみてください。
__MQL5__
まで
MQL5BUILD__
条件付きコンパイルに惑わされないために、削除しました。
5はコンパイルできない、4はOK。
条件付きコンパイルとの混同を避けるため、削除しました。
5はコンパイルできない、4はOK。
エラーログは?
できたと思う。MT5では、ENUM_OBJECT_PROPERTY_STRING、ENUM_OBJECT_PROPERTY_INTEGER、ENUM_OBJECT_PROPERTY_DOUBLEの3つをすべて明確に指定する必要があります。MT4では、intを指定するだけで、すべて動作します。
この場合、MQL5がMQL4よりも良い解決策なのかどうかもわかりません。
ObjectSetDouble およびObjectSetInteger メソッドの入力パラメータとして、無効なパラメータENUM_OBJECT_PROPERTY_STRING id を渡しました。
一般に、2つの言語で共通のライブラリを作ると、かえって混乱することが多いので、作らないでください。
わかったような気がします。MT5では、ENUM_OBJECT_PROPERTY_STRING、ENUM_OBJECT_PROPERTY_INTEGER、ENUM_OBJECT_PROPERTY_DOUBLEの3つはすべて明確に指定する必要があります。MT4では、intを指定するだけで、すべて動作します。
そのとおりです。
これで、両方のプラットフォームでコンパイルできるようになりました。ヘルプ5には明らかに誤りがあります。
そのとおりです。
両プラットフォームでコンパイルできるようになりました。5のヘルプに明らかに間違いがある。
エラーは何ですか?
例えば、現在ObjectSetIntegerの記述で
そうでなければならない。
IndicatorBuffersとの5つで、CURRENTバッファの数を#propertyで厳密に設定できない場合はどうでしょうか。4人制の場合、これによる制限はない。