Ошибки, баги, вопросы - страница 1036
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У вас она везде extern. Уберите модификатор в одном из модулей. Должна же она где-то реально распределяться.
Да я уже множество различных вариантов испробовал включая и этот - результат не меняется
Все библиотеки в mql - динамические. Вы в DLL не пробовали переменные объявлять? А потом в основной программе использовать? Попробуйте, чтоб меньше на mql потом обижаться.
А подскажите - когда ждать следующий билд терминала?
Там должна быть пофикшена проблема, с которой я столкнулся.
Если нельзя менять значение - тогда это константа. А если можно - то почему изменение значения не отражается в другом модуле?
А подскажите - когда ждать следующий билд терминала?
Там должна быть пофикшена проблема, с которой я столкнулся.
Все библиотеки в mql - динамические. Вы в DLL не пробовали переменные объявлять? А потом в основной программе использовать?
Extern это внешняя переменная, одна на всю область видимости, не так как в 4-ке. Input сейчас же не меняется. Хотите менять - присваиваете значение новой переменной и меняете.
Выше пример - что не так? (вопрос именно про extern в MQL5)
Выше пример - что не так? (вопрос именно про extern)
Вы имеете ввиду, что если .dll выгружается, то и все данные теряются? Пробовал - но с потерей данных не сталкивался - наверное как то система понимает, что не нужно выгружать до какого то момента
Я имею в виду, что extern-переменные связываются во время компиляции.
DLL (и mql-библиотека) не компилируются вместе с основной программой, следовательно не могут быть связаны. Недоработка stringo, в принципе, должна вылазить ошибка при компиляции. Она есть, это очевидно.
Extern переменные
Ключевое слово extern используется, чтобы объявить идентификаторы переменных как идентификаторы статического класса памяти с глобальным временем жизни. Такие переменные существуют с момента начала выполнения программы и для них память выделяется и инициализируется сразу после начала выполнения программы.
Можно создавать программы, которые состоят из нескольких исходных файлов, для этого используется директива препроцессору #include. Переменные, объявленные как extern с одним и тем же типом и идентификатором, могут существовать в разных исходных файлах одного проекта.
При компиляции всего проекта все extern-переменные с одним и тем же типом и идентификатором ассоциируются с одним участком памяти пула глобальных переменных. Extern-переменные полезны для раздельной компиляции исходных файлов. Extern-переменные можно инициализировать, но только однократно – недопустимо существование нескольких инициализированных extern-переменных одного и того же типа и с одним и тем же идентификатором.
Переменная инициализируется 2 раза, хотя бы эту ошибку уберите для начала и используйте новую переменную для расчета.
https://www.mql5.com/ru/forum/1111/page1053#comment_570931
Пронумеровал строки. Какую именно строку в каком файле - убрать?