Спасибо, Renat, о самом простом способе я и не подумал...
Использовать библиотеку, как по мне, есть смысл только если не
хочешь выкладывать открытый код, или если нет возможности скомпилировать
эксперта, использующего библиотечные функции.
В остальных случаях удобнее #include - получается тот же код, но разделенный на несколько файлов.
PS: в каждый из второстепенных включаемых файлов можно вставить строку "#include <главный включаемый файл.mq4>", и тогда их можно будет компилировать ;)
В остальных случаях удобнее #include - получается тот же код, но разделенный на несколько файлов.
PS: в каждый из второстепенных включаемых файлов можно вставить строку "#include <главный включаемый файл.mq4>", и тогда их можно будет компилировать ;)
Mathemat:
Спасибо, Renat, о самом простом способе я и не подумал...
Спасибо, Renat, о самом простом способе я и не подумал...
Стареешь, Mathemat!
:)
Aleksey24:
В такой веселой доброжелательной манере молодые дарования проявляют
благодарность своим менторам!
Стареешь, Mathemat!
:)
Mathemat:
Вычисления там серьезные, и мне уже надоело возиться с трудно обозримым кодом, объем которого приближается к тысяче строк.
Да уж. Глянул я на эксперта в 15,5 тыс. строк кода и подумал, как мозг и компилятор это всё тянут ;)
komposter:
Использовать библиотеку, как по мне, есть смысл [...] если нет возможности скомпилировать эксперта, использующего библиотечные функции.
А когда нет такой возможности? Когда не хватает самих библиотек?Использовать библиотеку, как по мне, есть смысл [...] если нет возможности скомпилировать эксперта, использующего библиотечные функции.
Aleksey24 писал (а): Стареешь, Mathemat! :)
Вот решу круглое уравнение - тогда и посмотрим, у кого больше ехидства осталось, хе-хе...Mathemat:
Например, есть скомпилированный эксперт без исходника и библиотека
в исходниках.komposter:
Использовать библиотеку, как по мне, есть смысл [...] если нет возможности скомпилировать эксперта, использующего библиотечные функции.
А когда нет такой возможности? Когда не хватает самих библиотек?Использовать библиотеку, как по мне, есть смысл [...] если нет возможности скомпилировать эксперта, использующего библиотечные функции.
Тогда функции, которые есть в библиотеке, можно менять (кроме имен и списка параметров), и эксперт их будет использовать.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проблема такова. Пишу скрипт (пока скрипт) с вычислениями, аналогичными тем, которые будут в советнике. Вычисления там серьезные, и мне уже надоело возиться с трудно обозримым кодом, объем которого приближается к тысяче строк. Решил вынести часть специфично вычислительных функций в библиотеку.
Но проблема в том, что эти функции используют глобальные переменные (и глобальные пользовательские массивы) скрипта. Теоретически можно было бы увеличить количества параметров функций, выносимых в библиотеку, за счет добавления параметров, фактически являющихся глобальными в основном модуле. Но объявления функций становятся очень громоздкими. Не хочется так, некрасиво.
Получается, что эти глобальные переменные надо объявлять внутри библиотеки, включая и #define. ОК, допустим. С заголовочным файлом возиться не хочется, так как фактически он дублирует библиотечный, и поэтому я просто решил добавить инструкцию #import непосредственно в скрипт. Так вот, нужно ли дублировать внутри этой инструкции объявления глобальных переменных, сделанных теперь уже в библиотеке? Какие тут могут быть подводные камни?
Или все же лучше просто запихнуть все нужные глобальные переменные скрипта в функции библиотеки как параметры и не париться, сделав их "автономными"?