ObjectSetDouble' - nenhuma das sobrecargas pode ser aplicada à chamada de função
ObjectSetInteger' - nenhuma das sobrecargas pode ser aplicada à chamada de função
Acho que já o tenho. Em MT5 deve especificar claramente os três ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER e ENUM_OBJECT_PROPERTY_DOUBLE. Em MT4, basta especificar int, e tudo irá funcionar.
Neste caso, nem sequer sei se a MQL5 é uma solução melhor do que a MQL4.
Acho que já descobri. Em MT5 todos os três ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER e ENUM_OBJECT_PROPERTY_DOUBLE devem ser claramente especificados. Em MT4, basta especificar int, e tudo irá funcionar.
boolObjectSetInteger(
long chart_id, // идентификатор графика string name, // имя int prop_id, // свойство long prop_value // значение
);
Deveria ser.
boolObjectSetInteger(
long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_INTEGER prop_id, // свойство long prop_value // значение
);
E em cinco com o IndicatorBuffers quando o número de amortecedores CURRENT não pode ser fixado rigidamente via #property? Em quatro não há restrições com isto.
Porque é que esta classe se compila sob MT4 mas não sob MT5?
Se retirar a definição de operador nesta classe, a compilação começa sob MT5. Isto parece ser um bug no compilador de 5.
Tente substituir
__MQL5__
para
__MQL5BUILD__.
Tente substituir
__MQL5__
para
__MQL5BUILD__
Para não ser confundido por uma compilação condicional, removi-a.
Cinco não podem compilar, quatro está OK.
Para evitar confusão com a compilação condicional, removi-a
Cinco não podem compilar, quatro está OK.
O que é o registo de erros?
Acho que já o tenho. Em MT5 deve especificar claramente os três ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER e ENUM_OBJECT_PROPERTY_DOUBLE. Em MT4, basta especificar int, e tudo irá funcionar.
Neste caso, nem sequer sei se a MQL5 é uma solução melhor do que a MQL4.
Passou um parâmetro inválidoENUM_OBJECT_PROPERTY_STRING id como parâmetro de entrada para o método ObjectSetDouble e ObjectSetInteger.
Em geral, não fazer uma biblioteca comum para duas línguas, haveria mais confusão.
Acho que já descobri. Em MT5 todos os três ENUM_OBJECT_PROPERTY_STRING, ENUM_OBJECT_PROPERTY_INTEGER e ENUM_OBJECT_PROPERTY_DOUBLE devem ser claramente especificados. Em MT4, basta especificar int, e tudo irá funcionar.
Exactamente!
Agora compila em ambas as plataformas. Há claramente um erro no Help 5.
Exactamente!
Agora compila em ambas as plataformas. Há claramente um erro na ajuda dos cinco.
O que é o erro?
Por exemplo, na descrição do ObjectSetInteger agora
Deveria ser.
E em cinco com o IndicatorBuffers quando o número de amortecedores CURRENT não pode ser fixado rigidamente via #property? Em quatro não há restrições com isto.