Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот вы писали
Slawa 24.04.05 21:35
посмотрите наш пример передачи 2-мерного массива котировок в длл. он - рабочий.
чтобы не было перенаправления доступа (для спокойствия) используйте функцию ArrayCopy, если Вы будете передавать в длл скопированный этой функцией массив, Вы можете быть уверены в полном своём контроле над этим массивом, потому что функция ArrayCopy реально копирует данные. При этом Вы можете не заботиться о перераспределении памяти для массива - всё будет сделано автоматически
Это я и хотел сделать, но натолкнулся на неописанное нигде несоответствие.
Два массива double в MQL передаются в длл в разном виде. Ваше копирование меняет тип времени на double.
Видимо, Вы копируете массив последовательным присваиванием элементов. Есть другой вариант копирования - через memcpy. тогда в длл массивы передавались бы в одинаковом виде. Не хотите исправить у себя алгоритм ArrayCopy() ?
Если Вы принимаете его как массив структур, то и обеспечьте, чтобы все элементы структуры были типа double. Что Вы и сделали.
ArrayCopyRates - специальная функция для передачи массива котировок в dll. Это в справке явно указано.
Хотя, лично мне естественней, когда копирование не меняет содержимого. И Вы это можете исправить, если любите когда всё красиво. Другое дело, что это врядли кому то нужно. Раз уж этот вопрос всплыл только сейчас, видимо длл мало кто пишет и многие из них не поймут, зачем копировать лишний раз массив.
В любом случае, спасибо, что уделили мне время.