Куча вопросов о том как использовать дополнительные файл-модули [mqh] - страница 2

 

MQH, MQ4 это просто включаемые файлы. Т.е. это кусок кода вашей программы. Как будто вырезанный кусок, выделенный для удобства восприятия кода.

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

При этом надо быть внимательным к объявлению переменных. Для удобства надо их объявлять прям в этом инклюде, если они локальные. Иначе запутаешься потом. У меня локальные переменные имеют префикс по названию инклюда. Так, что можно повторять тело имени переменной. Это типа пространства имён.

 
 

Компилируйте весь эксперт (с подключенным инклюдником). Инклюдник просто сохраняйте через Ctrl + S

Сначала делаете функцию в теле эксперта, проверяете ее, а потом уже готовую переносите в инклюдник подключаете и забываете про нее (если нет ошибок)

 
то есть ошибка о том что меджик номер не проиницилизирован это так и должно быть ?????
 
Это не библа, а просто кусок вашего кода вынесенный в отдельный файл для удобства. поэтому при отдельной компиляции, если в нем есть ссылки на внешние переменные или функции находящиеся в другом месте он конечно же будет ругаться (ну как эсли бы вы компилировали только половину кода.)
 
FAQ:
Это не библа, а просто кусок вашего кода вынесенный в отдельный файл для удобства. поэтому при отдельной компиляции, если в нем есть ссылки на внешние переменные или функции находящиеся в другом месте он конечно же будет ругаться (ну как эсли бы вы компилировали только половину кода.)
А шо токое библа ???
 
VOLDEMAR:
А шо токое библа ???
Библиотека. Она отдельно компилируется.
 
Библиотека (Lib / DLL)
 

Хорошо ! В mqh файле я инициализирую переменную n но советник пишет при компиляции 'n' - variable not defined

как победить ???


 
VOLDEMAR:

Хорошо ! В mqh файле я инициализирую переменную n но советник пишет при компиляции 'n' - variable not defined

как победить ???

Инициализация и объявление разные вещи. Так, точно напишите, что Вы делаете?