Массивы произвольной размерности в dll - страница 2

 
Debugger >>:


Этот пост я прочитал не один раз https://forum.mql4.com/ru/23990

не работает....

Тем не менее за ссылку благодарю.


Стоп.
Так Вы сделали TInput = array of Double ?

именно Double. и ни в коем случае не array of Real и не array of array of ...
а распечатку элементов из dll делали?
Если передаете массив 2 на 2, распечатывайте 4 элемента.
Как печатать из Dll - посмотрите тут
https://forum.mql4.com/ru/25643

 
jartmailru >>:


Стоп.
Так Вы сделали TInput = array of Double ?

именно Double. и ни в коем случае не array of Real и не array of array of ...
а распечатку элементов из dll делали?
Если передаете массив 2 на 2, распечатывайте 4 элемента.
Как печатать из Dll - посмотрите тут
https://forum.mql4.com/ru/25643



На самом деле динамическое выделение памяти работает без проблем. И эта билбиотека тестится на-ура, если не пытаться ее использовать по MT4.

Возможно здесь какие-то несостыковки у Паскаля и С++. Но, если честно, пока с этим мне разбиратся не хочется. Эта dll у меня уже поперек горла стоит.

 
Debugger >>:


На самом деле динамическое выделение памяти работает без проблем. И эта билбиотека тестится на-ура, если не пытаться ее использовать по MT4.

Возможно здесь какие-то несостыковки у Паскаля и С++. Но, если честно, пока с этим мне разбиратся не хочется. Эта dll у меня уже поперек горла стоит.

Ну если Вам действительно интересно получить работающий код-

то Вы хоть по приколу попробуйте сделать как я Вас попросил.

Так сказать, слово-в-слово.

Динамическое выделение памяти ИМХО тут рядом не стояло.

Вся фишка (и вся ошибка) в устройстве массива двумерного.

 
jartmailru >>:

Ну если Вам действительно интересно получить работающий код-

то Вы хоть по приколу попробуйте сделать как я Вас попросил.

Так сказать, слово-в-слово.

Динамическое выделение памяти ИМХО тут рядом не стояло.

Вся фишка (и вся ошибка) в устройстве массива двумерного.


Это уже не важно... Чуть позже я обязательно вернусь к этому вопросу, а пока ГРОМАДНЫЙ РЕСПЕКТ тому кто скрывается под ником "jartmailru" за блестящие идеи.

Все работает.

 
jartmailru писал(а) >>

Не нужно искать- Вы в процитированном мною посту stringo нажмите стрелочку >>.
Это как раз из той темы.
Пример нормальный, только с Wrapper'ом массивы не надо никуда копировать...

У Вас в примере, между прочим, целевой массив- фиксированный.

С помощью контейнера STL может быть не фиксированным...

 
StatBars >>:

С помощью контейнера STL может быть не фиксированным...

В делфях то :) ?

Не зная внутренней структуры массива в MQL -- чревато. Вон, со строками уже багофичу нашли.

Получится потом Access Violation... ну его.

 
TheXpert писал(а) >>

В делфях то :) ?

Не зная внутренней структуры массива в MQL -- чревато. Вон, со строками уже багофичу нашли.

Получится потом Access Violation... ну его.

Не не, я не про дельфи...

 
StatBars >>:

С помощью контейнера STL может быть не фиксированным...

Двумерный массив Stl-ем?

Поверю в 

class Matrix

{

int m_rows, m_cols;

std::vector<double> m_data;

.......
}

Или Вы имеете в виду

std::vector< std::vector<double> > ? :-)

 
jartmailru писал(а) >>

Двумерный массив Stl-ем?

Поверю в

class Matrix

{

int m_rows, m_cols;

std::vector<double> m_data;

.......
}

Или Вы имеете в виду

std::vector< std::vector<double> > ? :-)

Я имел ввиду std::deque<double> *ar;

Но ещё там возможно что-то вроде std::deque<Pair> ar;

Вообще изначально человек спрашивал как передать двумерный массив в длл, я привёл в пример то что использую, да решение не изящное и т.д., но тем не менее это работает,

То что он фиксированный при необходимости тоже можно доработать(напильником :) )...

Причина обращения: