MT4_EXPFUNC void __stdcall Load_Data(double *INPUT_DATA, double *OUTPUT_DATA) { // INPUT_DATA[Dim_1][Dim_2]: Dim_1 - Измерение примеров в выборке, Dim_2 - Измерение входов = NUM_INP // OUTPUT_DATA[Dim_1][Dim_2]: Dim_1 - Измерение примеров в выборке, Dim_2 - Измерение выходов = NUM_OUT for(int i=0;i<NN->num_pat;i++) for(int j=0;j<NN->num_inp;j++) { NN->input[j][i]=*INPUT_DATA; INPUT_DATA+=1; } for(int i=0;i<NN->num_pat;i++) for(int j=0;j<NN->num_out;j++) { NN->output[j][i]=*OUTPUT_DATA; OUTPUT_DATA+=1; } }
Писал для НС... Указатель хоть и на одномерный массив, но он же всё равно является указателем на начало массива, который в МТ определён как 2-х мерный
в МТ функция выглядит вот так:
void Load_Data(double& INPUT_DATA[][], double& OUTPUT_DATA[][]) ; // INPUT_DATA[Dim_1][Dim_2]: Dim_1 - Измерение примеров в выборке, Dim_2 - Измерение входов = NUM_INP // OUTPUT_DATA[Dim_1][Dim_2]: Dim_1 - Измерение примеров в выборке, Dim_2 - Измерение выходов = NUM_OUTВобщем указатель проходит сначала по второму измерению
Просто передавайте и всё. В DLL отдаётся буфер, в котором хранятся данные. Буфер - непрерывный. Как Вы будете его интерпретировать - Ваше дело
stringo >>:
Просто передавайте и всё. В DLL отдаётся буфер, в котором хранятся данные. Буфер - непрерывный. Как Вы будете его интерпретировать - Ваше дело
Просто передавайте и всё. В DLL отдаётся буфер, в котором хранятся данные. Буфер - непрерывный. Как Вы будете его интерпретировать - Ваше дело
На самом деле вопрос другой :) . Я так надеялся, что можно каким-нибудь хитрым макаром подменить указатель...
Кстати, строки в массиве можно хачить по ходу, т.е. подменять своими извне. Но строки как раз не нужны...
TheXpert писал(а) >>
Спасибо... Для динамических массивов то же самое или отличается? Или это именно для них?
Спасибо... Для динамических массивов то же самое или отличается? Или это именно для них?
В MQL все массивы динамические внутри. А при передаче в DLL передается его содержимое. Размер поменять нельзя. Делается такая фигня которая по научному называется маршилинг. Или преобразование параметров при передаче их из подобных, по сути менеджмент-сред в неменеджет - в нейтив.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сабж.
Интересует именно представление массива в памяти и корректное обращение.
Буду премного благодарен за объяснение и еще больше за пример кода.