comp: Wenn Sie die Operator-Definition in dieser Klasse entfernen, beginnt sie unter MT5 zu kompilieren. Dies scheint ein Fehler im Compiler von 5 zu sein.
ObjectSetDouble' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
ObjectSetInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Ich glaube, ich habe es herausgefunden. In MT5 müssen Sie alle drei ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER und ENUM_OBJECT_PROPERTY_DOUBLE eindeutig angeben. In MT4 geben Sie einfach int an, und alles wird funktionieren.
In diesem Fall weiß ich nicht einmal, ob MQL5 eine bessere Lösung als MQL4 ist.
ObjectSetDouble' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
ObjectSetInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Sie haben einen ungültigen ParameterENUM_OBJECT_PROPERTY_STRING id als Eingabeparameter an die Methoden ObjectSetDouble und ObjectSetInteger übergeben.
Im Allgemeinen sollte man keine gemeinsame Bibliothek für zwei Sprachen erstellen, da dies zu mehr Verwirrung führen würde.
Ich glaube, ich habe es herausgefunden. In MT5 müssen alle drei ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER und ENUM_OBJECT_PROPERTY_DOUBLE eindeutig angegeben werden. In MT4 geben Sie einfach int an, und alles wird funktionieren.
boolObjectSetInteger(
long chart_id, // идентификатор графика string name, // имя int prop_id, // свойство long prop_value // значение
);
So sollte es sein.
boolObjectSetInteger(
long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_INTEGER prop_id, // свойство long prop_value // значение
);
Was ist mit fünf Indikatorpuffern, wenn die Anzahl der AKTUELLEN Puffer nicht starr über #property festgelegt werden kann? Bei Vierern gibt es dabei keine Einschränkung.
Warum kompiliert diese Klasse unter MT4, aber nicht unter MT5?
Wenn Sie die Operator-Definition in dieser Klasse entfernen, beginnt sie unter MT5 zu kompilieren. Dies scheint ein Fehler im Compiler von 5 zu sein.
Versuchen Sie zu ersetzen
__MQL5__
zu
__MQL5BUILD__.
Versuchen Sie zu ersetzen
__MQL5__
zu
__MQL5BUILD__
Um nicht durch die bedingte Kompilierung verwirrt zu werden, habe ich sie entfernt.
Fünf können nicht kompiliert werden, vier sind OK.
Um Verwechslungen mit der bedingten Kompilierung zu vermeiden, habe ich sie entfernt
Fünf können nicht kompiliert werden, vier sind OK.
Wie lautet das Fehlerprotokoll?
Ich glaube, ich habe es herausgefunden. In MT5 müssen Sie alle drei ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER und ENUM_OBJECT_PROPERTY_DOUBLE eindeutig angeben. In MT4 geben Sie einfach int an, und alles wird funktionieren.
In diesem Fall weiß ich nicht einmal, ob MQL5 eine bessere Lösung als MQL4 ist.
Sie haben einen ungültigen ParameterENUM_OBJECT_PROPERTY_STRING id als Eingabeparameter an die Methoden ObjectSetDouble und ObjectSetInteger übergeben.
Im Allgemeinen sollte man keine gemeinsame Bibliothek für zwei Sprachen erstellen, da dies zu mehr Verwirrung führen würde.
Ich glaube, ich habe es herausgefunden. In MT5 müssen alle drei ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER und ENUM_OBJECT_PROPERTY_DOUBLE eindeutig angegeben werden. In MT4 geben Sie einfach int an, und alles wird funktionieren.
Ganz genau!
Jetzt wird es auf beiden Plattformen kompiliert. Hier liegt eindeutig ein Fehler in der Hilfe 5 vor.
Ganz genau!
Er kompiliert jetzt auf beiden Plattformen. Es liegt eindeutig ein Fehler in der Hilfe der Fünf vor.
Worin besteht der Fehler?
In der ObjectSetInteger-Beschreibung heißt es jetzt zum Beispiel
So sollte es sein.
Was ist mit fünf Indikatorpuffern, wenn die Anzahl der AKTUELLEN Puffer nicht starr über #property festgelegt werden kann? Bei Vierern gibt es dabei keine Einschränkung.