Ошибки, баги, вопросы - страница 2338

 
pavlick_:

Похоже, что недавно что-то изменили в поведении. Некоторое время назад порядок был другим - глобальные переменные и статики инициализировались в одном порядке (в порядке объявления). Т.е. в данном случае сначала a, а потом b. Может ошибаюсь, но вряд ли.

Прежде чем написать это - я не поленился - проверил в MetaTrader 4 build 765x32 (MetaEditor build 1035x32) - все тоже самое. А это 2014 год (!)
 
#define M (a ? 1 : 0)

struct S {
   int a;
};

void OnStart()
{
   S s;
#define a s.a
   Alert(M);
}

Скомпилировать не удаётся, ошибки:
   'a' - too complex, simplify the macro    temp.mq5    24    10
   's' - struct member undefined    temp.mq5    24    10
   ...

Т.е. препроцессор,  видимо, пытается рекурсивно раскрыть a.

 

Интересно, это брокер так делает или какой то баг мт 4 ?


 
A100:
Прежде чем написать это - я не поленился - проверил в MetaTrader 4 build 765x32 (MetaEditor build 1035x32) - все тоже самое. А это 2014 год (!)

Да, я снова ошибся.

 
Vladimir Pastushak:

Интересно, это брокер так делает или какой то баг мт 4 ?

Зарегистрируйте по нему реальный сигнал, если пройдет значит это ДЦ. Есть центовые счета, которые отображаются как обычные(чем многие сигнальщики пользуются), но у вас круче вариант ))).

 

Стал много запускать кроссплатформенный код на MT4. Там отладчика что ли нет? Запускаю по F5, но нигде не тормозится.

Пока приходится отладкой заниматься под пятеркой, что костыльно в некоторых случаях.

 

fxsaber:Стал много запускать кроссплатформенный код на MT4. Там отладчика что ли нет? Запускаю по F5, но нигде не тормозится.Пока приходится отладкой заниматься под пятеркой, что костыльно в некоторых случаях.

точка останова в МТ4 точно срабатывает, слева на поле в метаэдиторе клик


 
Igor Makanu:

точка останова в МТ4 точно срабатывает, слева на поле в метаэдиторе клик

Запустите.

 
fxsaber:

Запустите.

проверил, да Вы правы - не работает в МТ4 точка останова при тестировании на исторических данных, проверял на стандартном советнике Moving Average - не работает!

ЗЫ: пробовал добавить в код DebugBreak(); - результата нет, все равно не получается остановить тестирование и выйти в отладчик

ЗЫЗЫ: точка останова при тестирование на реальных данных, работает

 
Igor Makanu:

ЗЫЗЫ: точка останова при тестирование на реальных данных, работает

У меня и на реальных данных не работает.