Проблема при работе с библиотекой Fuzzy

 

Добрый день!

При пошаговой работе в отладчике с файлом ruleparser.mqh  стандартной библиотеки Fuzzy

Происходит ошибка времени выполнения:

2020.02.02 16:02:27.168            Message            Critical error while running expert 'TestFuzzy (ED-3.20,M1)'.

2020.02.02 16:02:27.168            Message            Incorrect casting of pointers.

2020.02.02 16:02:27.168            Message           

2020.02.02 16:02:27.168            Message            Continue in debugger?

 

Остановка на строке 712 (return (cond);)

файла ruleparser.mqh функции

static CConditions *CRuleParser::ParseConditions(CArrayObj *conditionExpression,CList *in,CList *lexems)

При запуске того же кода непосредственно в терминале ошибок нет.

Как это можно объяснить и как на это реагировать?

 
Пишите номер билда, компилятор часто меняется, и с ним - фичи и баги.
 

Билд 2280 от 13.12.2019.

А Вы представляете разработчиков?

 
Andrey Kotrin:

Билд 2280 от 13.12.2019.

А Вы представляете разработчиков?

Я разработчиков не представляю, но я точно знаю, что в компиляторе встречаются то одни, то другие ошибки.

Например, в билдах в районе 2280 точно есть ошибка (тоже про указатели, но не факт что та же самая), я её описывал здесь:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Stanislav Korotky, 2020.01.01 18:04

Расскажите мне, как отлаживать ex5-библиотеки?

Есть библиотека, которая несколько лет работала без проблем. Однако после некоторых изменений компилятора в последних билдах, вызов функции по указатели из библиотеки завершается с ошибкой "invalid function pointer call". Если исходник библиотеки включить в эксперт напрямую через инклуд, ошибки нет.

В общем, нужно каким-то образом сравнивать типы указателей (прототипы функций), формируемые в библиотеке и в эксперте, который библиотеку подгружает.

Суппорт закрыт. Исходник из маркета я здесь показывать не буду.

Для справки, при тех же исходниках вызов из библиотеки нормально работал в билде 2190.

Исходники отправлены разработчикам, но проблему так еще и не смотрели (нет времени).

Другую ошибку, связанную с неверной кодогенерацией в зависимости от включенной/отключенной оптимизации кода и/или отладчика, поправили в 2289.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2280

Stanislav Korotky, 2020.01.05 16:50

Плохие новости. В последних билдах, включая 2286, компилятор выдает "левый" байт-код в режиме отключенной оптимизации. Проблема проявляется в том, что один и тот же проект с одними и теми же входными параметрами получает неверные данные (в моем случае, вызов ArrayCopy не копирует все запрошенные и имеющиеся данные локальных массивов, обрубая массив на 8-м элементе) при компиляции без оптимизации. Если оптимизация включена, или если запускать дебаг-версию, или запускать под отладчиком, или если вокруг копирования понаставить принтов, всё работает нормально.

Но поскольку на форуме сыпятся сообщения о прочих странностях компилятора, я предпочитаю пока собирать рабочие версии на билде 2190. ;-/

 

Hi 

this is my bug 

bug not fixed after update metatrader to build 2326 20 Feb 2020

please help to fix bug !!!