Существует ограничение. Параметр по ссылке в mql4-функцию может быть передан только в пределах одного модуля.
Написано здесь: "MQL4: Формальные параметры"
Написано здесь: "MQL4: Формальные параметры"
Правильно ли я Вас понял, что по ссылке В ПРИНИЦИПЕ невозможно передать переменные в ф-цию, находящуюся в другом модуле?
Но тогда как быть с описанным здесь:
"MQL4: Описание внешних функций"
"Существует способ передавать в импортируемые dll-функции указатели на переменные. Данные типа string передаются как указатель на соответствующую область памяти (напомним, что внутреннее представление строковых данных состоит из двух частей: длины области памяти и указателя на область памяти). Если необходимо передать данные типа int или double, то в качестве параметра следует передать по ссылке одноэлементный массив соответствующего типа."
Но тогда как быть с описанным здесь:
"MQL4: Описание внешних функций"
"Существует способ передавать в импортируемые dll-функции указатели на переменные. Данные типа string передаются как указатель на соответствующую область памяти (напомним, что внутреннее представление строковых данных состоит из двух частей: длины области памяти и указателя на область памяти). Если необходимо передать данные типа int или double, то в качестве параметра следует передать по ссылке одноэлементный массив соответствующего типа."
Ещё раз: Параметр по ссылке в mql4-функцию может быть передан только в пределах одного модуля.
Для dll можно обойти это ограничение. Входным параметром описать массив по ссылке нужного типа и передавать хотя бы одноэлементный массив. Вы правильно нашли описание https://docs.mql4.com/ru/basis/preprosessor/import Это - действительно обходное решение, так как передаётся массив, а не ссылка на переменную
На форуме (на русском и на английском, а также на www.mql4.com) можно найти примеры
Для dll можно обойти это ограничение. Входным параметром описать массив по ссылке нужного типа и передавать хотя бы одноэлементный массив. Вы правильно нашли описание https://docs.mql4.com/ru/basis/preprosessor/import Это - действительно обходное решение, так как передаётся массив, а не ссылка на переменную
На форуме (на русском и на английском, а также на www.mql4.com) можно найти примеры
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дано: скрипт в котором определена внешняя ф-ция
(кстати, про пустые кавычки в рук-ве ничего не нашел, даже примеры без них, а компилятор требует)
bool-переменные соответственно по ссылке.
Вызывается данная ф-ция из внутренних ф-ций скрипта, например вот так:
переменная result ессно - bool.
Внутри "TestOpenSignal.ex4" ф-ция определена так:
И вся эта связка почему-то ;о) не работает, несмотря на явное указание сделать slong=true, в основной скрипт ничего не передается.
P.S. IsLibrariesAllowed()=true