Передача котировок в dll - страница 2

 
Ваш пример у меня сразу запустился. вопрос в другом был.
Вот вы писали

Slawa 24.04.05 21:35

посмотрите наш пример передачи 2-мерного массива котировок в длл. он - рабочий.
чтобы не было перенаправления доступа (для спокойствия) используйте функцию ArrayCopy, если Вы будете передавать в длл скопированный этой функцией массив, Вы можете быть уверены в полном своём контроле над этим массивом, потому что функция ArrayCopy реально копирует данные. При этом Вы можете не заботиться о перераспределении памяти для массива - всё будет сделано автоматически

Это я и хотел сделать, но натолкнулся на неописанное нигде несоответствие.
Два массива double в MQL передаются в длл в разном виде. Ваше копирование меняет тип времени на double.
Видимо, Вы копируете массив последовательным присваиванием элементов. Есть другой вариант копирования - через memcpy. тогда в длл массивы передавались бы в одинаковом виде. Не хотите исправить у себя алгоритм ArrayCopy() ?
 
Какое несоответствие? Вы передали двухмерный массив типа double. Так и принимайте двухмерным.
Если Вы принимаете его как массив структур, то и обеспечьте, чтобы все элементы структуры были типа double. Что Вы и сделали.

ArrayCopyRates - специальная функция для передачи массива котировок в dll. Это в справке явно указано.
 
Несоответствие в том, что параметр ArrayCopyRates() тоже объявлен как double, а принимается как особым образом выровнянная структура. Все эти действия всегда были естественными для Вас. Я в них разобрался и логику всех этих действий и именно такого представления теперь понимаю.
Хотя, лично мне естественней, когда копирование не меняет содержимого. И Вы это можете исправить, если любите когда всё красиво. Другое дело, что это врядли кому то нужно. Раз уж этот вопрос всплыл только сейчас, видимо длл мало кто пишет и многие из них не поймут, зачем копировать лишний раз массив.
В любом случае, спасибо, что уделили мне время.
 
В MQL4 нет структур. Из-за этого такие манипуляции. И внешние, и внутренние, в виде диспетчеризации типов и перенаправления доступа.
 
Если тема ещё не устарела, обратитесь к теме "Разработка расширений для Windows..."
Причина обращения: