Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сделал скриншот в MetaTrader? Поделись им с друзьями!
Forex Trader
114375
Forex Trader 2006.03.26 14:28 
Будьте добры, подскажите, пожалуйста, почему у меня возникает эта ошибка при компиляции?
Мой Эксперт находится в папке ...\experts\...
Исходные тексты нужных мне функций находятся в папке ...\experts\include\... в разных файлах блоками.
В эксперте в начале текста я пытаюсь включить эти блоки:
#include <file1.mq4>
#include <file2.mq4>
#include <file3.mq4>
...................
#include <file7.mq4>

Далее идет
int init() {}
int start() {}

При компиляции возникает вышеуказанная ошибка. Нет ли какого ограничения на длину текста? Так как такая ошибка возникает в разных местах, в зависимости сколько файлов я включаю. Если я включаю 3 файла, то компиляция без ошибок. Стоит включать более 3 файлов, возникает эта ошибка. Пробовал все мои функции запихнуть в один файл - тоже самое. Как мне быть в этом случае?

Спасибо.
Forex Trader
114375
Forex Trader 2006.03.26 14:36  
Мне удалось присоединить таким образом более 80 файлов общей длиной ок. 10 000 строк.
Видимо, дело не в ограничениях МЕ.

Видимо, дело в какой-то конкретной функции, содержащей ошибку.
Forex Trader
114375
Forex Trader 2006.03.26 15:22  
Мне удалось присоединить таким образом более 80 файлов общей длиной ок. 10 000 строк.
Видимо, дело не в ограничениях МЕ.

Видимо, дело в какой-то конкретной функции, содержащей ошибку.


А может есть ограничение на количество функций? Оставил всего 4 влючаемых файла, стала ругаться на
int init()
{
//----
cntTick=0; prevtime=0; prevperiod=0;
//----
return(0);
}
Выдает ту же ошибку. Но в ней то что не правильно? непонятно...
Forex Trader
114375
Forex Trader 2006.03.26 15:54  
Ну, надо просто разобраться.
Если эти переменные не определены за пределами init(), то надо же их определить.

Вообще, я в таких случаях действую методом последовательного приближения.
Беру большую программу. Не работает. Начинаю один за другим исключать модули (функции).
При этом надо следить, чтоб из головногоо файла не было обращения к несуществующей (временно исключённой) функции. И так дохожу до ошибочного места.

Можно действовать наоборот. Наращивать. Начинать с минимальной конфигурации, а потом последовательно добавлять функции.

Могу только сказать, что за время работы с компилятором я ни разу не видел ошибку компилятора. Т.е., если МЕ ругается, то где-то в моём коде есть ошибка. Я на это всегда рассчитывал твёрдо, и всякий раз это работало.
Forex Trader
114375
Forex Trader 2006.03.26 16:17  
Нет, переменные тут ни при чем, т.к. если их закомментировать, то тоже самое.
Я хочу скомпилировать без головного файла *.mqh. У меня включение идет последовательное, т.е. сначала идет функция и переменные, а только ниже их использование. 5 функций проходит без проблем, без ошибок. Добавляю любой другой влючаемый файл и стопор... Первая же функция выдает такую ошибку, даже
int init()
{
return(0);
}
Не пойму в чем дело...
Forex Trader
114375
Forex Trader 2006.03.26 18:20  
Дословно - "объявление функции не ожидается (не приветствуется)". Видимо, где-то идет дублирование функций и отсюда кофликт.
Forex Trader
114375
Forex Trader 2006.03.27 11:16  
Одна функция не закончилась, а другая уже началась.
Либо прототип функции расположен внутри какой-либо функции (на локальном уровне).
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий