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

 
MetaDriver:
У вас она везде extern.    Уберите модификатор в одном из модулей.   Должна же она где-то реально распределяться.
Да я уже множество различных вариантов испробовал включая и этот - результат не меняется. То что static - не меняется - это нормально, но с extern ситуацию не понял
 
A100:
Да я уже множество различных вариантов испробовал включая и этот - результат не меняется
Кроме того.  Эта фишка не для библиотек, только для инклюдников. 
Все библиотеки в mql - динамические.  Вы в DLL не пробовали переменные объявлять?  А потом в основной программе использовать?  Попробуйте, чтоб меньше на mql потом обижаться.
 

А подскажите - когда ждать следующий билд терминала?

Там должна быть пофикшена проблема, с которой я столкнулся. 

 
A100:
Если нельзя менять значение - тогда это константа. А если можно - то почему изменение значения не отражается в другом модуле?
Extern это внешняя переменная, одна на всю область видимости, не так как в 4-ке. Input сейчас же не меняется. Хотите менять - присваиваете значение новой переменной и меняете.
 
vlad_123:

А подскажите - когда ждать следующий билд терминала?

Там должна быть пофикшена проблема, с которой я столкнулся. 

Так вроде вам в сентябре обещали).
 
MetaDriver:

Все библиотеки в mql - динамические.  Вы в DLL не пробовали переменные объявлять?  А потом в основной программе использовать?  

Вы имеете ввиду, что если .dll выгружается, то и все данные теряются? Пробовал - но с потерей данных не сталкивался - наверное как то система понимает, что не нужно выгружать до какого то момента
 
zfs:
Extern это внешняя переменная, одна на всю область видимости, не так как в 4-ке. Input сейчас же не меняется. Хотите менять - присваиваете значение новой переменной и меняете.

Выше пример - что не так? (вопрос именно про extern в MQL5)

 
A100:

Выше пример - что не так? (вопрос именно про extern)

Переменная инициализируется 2 раза, хотя бы эту ошибку уберите для начала и используйте новую переменную для расчета.
 
A100:
Вы имеете ввиду, что если .dll выгружается, то и все данные теряются? Пробовал - но с потерей данных не сталкивался - наверное как то система понимает, что не нужно выгружать до какого то момента

Я имею в виду, что extern-переменные связываются во время компиляции. 

DLL (и mql-библиотека) не компилируются вместе с основной программой, следовательно не могут быть связаны.  Недоработка stringo, в принципе, должна вылазить ошибка при компиляции. Она есть, это очевидно.

https://www.mql5.com/ru/docs/basis/variables/externvariables

Extern переменные

Ключевое слово extern используется, чтобы объявить идентификаторы переменных как идентификаторы статического класса памяти с глобальным временем жизни. Такие переменные существуют с момента начала выполнения программы и для них память выделяется и инициализируется сразу после начала выполнения программы.

Можно создавать программы, которые состоят из нескольких исходных файлов, для этого используется директива препроцессору #include. Переменные, объявленные как extern с одним и тем же типом и идентификатором, могут существовать в разных исходных файлах одного проекта.

При компиляции всего проекта все extern-переменные с одним и тем же типом и идентификатором ассоциируются с одним участком памяти пула глобальных переменных. Extern-переменные полезны для раздельной компиляции исходных файлов. Extern-переменные можно инициализировать, но только однократно –  недопустимо существование нескольких инициализированных extern-переменных одного и того же типа и с одним и тем же идентификатором.

 
zfs:
Переменная инициализируется 2 раза, хотя бы эту ошибку уберите для начала и используйте новую переменную для расчета.

https://www.mql5.com/ru/forum/1111/page1053#comment_570931

Пронумеровал строки. Какую именно строку в каком файле - убрать?