Про эту проблемы мы знаем.
Дело в том, что сейчас есть ограничение на передачу объектов (а строка - это объект) из других импортированных библиотек. Суть проблемы в том, что код и данные испортируемой библиотеки загружаются в отдельное рабочее пространство. Я бы рекомендовал не импортировать EX4 библиотеки (это медленный путь, почти как загрузка COM объекта), а включать их полный исходный код через #include - так будет работать максимально быстро и в одном рабочем пространстве.
Дело в том, что сейчас есть ограничение на передачу объектов (а строка - это объект) из других импортированных библиотек. Суть проблемы в том, что код и данные испортируемой библиотеки загружаются в отдельное рабочее пространство. Я бы рекомендовал не импортировать EX4 библиотеки (это медленный путь, почти как загрузка COM объекта), а включать их полный исходный код через #include - так будет работать максимально быстро и в одном рабочем пространстве.
А где достать этот TST1 ?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. Вариант скрипта (tst1.mq4)
Работает как и положено, т.е. выдаются такие сообщения в лог:
tst1 EURUSD,H1: removed
tst1 EURUSD,H1: os___:EURUSD
tst1 EURUSD,H1: Sym:EURUSD
tst1 EURUSD,H1: loaded successfully
Compiling 'tst1'
2. Вариант - функции _SetVar и _GetVar выносим во внешнюю библиотеку, т.е.
et1.mq4
и заголовок:
et1.mqh
после чего в скрипте остается (tst.mq4)
Но вот результат выполнения - уже несколько иной:
tst EURUSD,H1: removed
et1 EURUSD,H1: removed
tst EURUSD,H1: os___:
et1 EURUSD,H1: Sym:EURUSD
et1 EURUSD,H1: loaded successfully
tst EURUSD,H1: loaded successfully
т.е. переменная в библиотеке пуста, либо неправильно возвращается через функцию. Если еще точнее - на другой машине этот же тест выгоняет мусор из памяти.
В архиве - тот же код, в исходниках + printscreen.