MetaTrader 4 Client Terminal build 646: Умный поиск, книги в Маркете и обновление окна параметров MQL4-программы - страница 9
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Причину не нашли?
Воспроизвел Вашу ситуацию, мгновенно получил в журнале: 2014.05.06 13:50:41.023 Debugging - symbol 'XAUUSDX' is not selected
вынь7х64. Все впорядке, МЕ не повис, вынь не упала, просто дебаггер не стал работать.
пока что не нашел в чем дело, повторить тоже не удалось.. софта много и в каждом ошибки, отсюда хаос.. пока найдешь в чем проблема зубы выпадут..
Билд 646. Компилятор не находит сразу все необъявленные переменные даже в одной зоне видимости. Например, была объявлена глобальная переменная abc и была использована 5 раз в одной зоне видимости. Потом в самом объявлении меняем имя переменной на abcd и компилируем. Компилятор, разумеется, выдает сообщение undeclared identifier abc. Но ни разу не выдает 5 строк. Может выдать 3 строки. После исправления в этих строках имени переменной и последующей компиляции, компилятор выдаст оставшиеся 2 undeclared identifier.
Билд 646. Компилятор не находит сразу все необъявленные переменные даже в одной зоне видимости. Например, была объявлена глобальная переменная abc и была использована 5 раз в одной зоне видимости. Потом в самом объявлении меняем имя переменной на abcd и компилируем. Компилятор, разумеется, выдает сообщение undeclared identifier abc. Но ни разу не выдает 5 строк. Может выдать 3 строки. После исправления в этих строках имени переменной и последующей компиляции, компилятор выдаст оставшиеся 2 undeclared identifier.
Да, заметил. Такое ощущение, что компилятор, дойдя до первой необъявленной переменной, дальше уже не смотрит. Раньше можно было одним махом найти и исправить все ошибки из-за изменения имени переменной. Сейчас приходится каждый раз компилировать, чтобы он нашёл следующую ошибочную переменную. Поиск с заменой не всегда нужен. Иногда нужно поменять имена части переменных. Было просто - меняешь имя переменной, после компиляции находишь все вхождения этих имён, исправляешь на новое имя только в тех местах кода, где оно нужно, а потом вписываешь новую переменную со старым именем, чтобы остальные (не исправленные) опять имели свою объявленную переменную.
Вот-вот...
Что-то непонятное с константами.
Что-то непонятное с константами.
Встроенный макрос REASON_INITFAILED имеет значение 9
Поясните, что не так?
Встроенный макрос REASON_INITFAILED имеет значение 9
Ну а вообще причина у меня там была такая:
Хотя слова "Встроенный макрос" несколько сбили с толку. Это не то же самое, что константы?
Значит здесь неправильно? И в локальной справке?
Ну а вообще причина у меня там была такая:
Хотя слова "Встроенный макрос" несколько сбили с толку. Это не то же самое, что константы?
Используйте макросы/дефайны вместо абсолютных значений и тогда не будет проблем.
Справку поправим.
Всё равно непонятно.
reason=8, что вроде бы и должно было случиться согласно неправильной на данный момент справке: "Признак того, что обработчик OnInit() вернул ненулевое значение"
Я попробовал использовать сначала REASON_INITFAILED, но когда сработала функция DeleteAllTempFiles(), начал разбираться, почему это случилось.
Или при использовании в OnInit()
должно возвращаться не REASON_INITFAILED?
MetaQuotes:
"Используйте макросы/дефайны вместо абсолютных значений и тогда не будет проблем. Справку поправим."
Имя встроенной константы REASON_INITFAILED означает что-то другое? Откуда макрос? Когда я вставляю в исходный код это имя (без дефайнов), пребываю в уверенности, что при исполнении из этого места скомпилированного кода в нужный регистр процессора сразу смувируется ее значение. Даже в следующем билде, где это значение будет другим. Достаточно лишь скомпилировать.
А тут что, еще макрос будет дополнительно исполняться?
И еще вопрос, что такое "абсолютные значения". Очевидно, речь не о MathAbs(). Чем они отличаются от просто значений?