Так ведь в функции fire ничего не происходит. Во-первых, массив outarray передан по значениям, а не по указателю, т. е. что бы там не записывалось в массив outarray, все это остается внутри функции. Во-вторых, даже если бы и был массив передан правильно, внутри функции fire происходит запись только во второй элемент outarray, а на выходе (в MQL4) читается шестой элемент.
И вообще непонятно, зачем нужен массив inarray.
Scriptong
Спасибо за комент , отрезвил )
В этот массив будут передаваться внешние параметры из советника MQL4 , например значения индикаторов.
Их нужно будет обработать внутри DLL и передать результат советнику .
Функция Fire для правильного заполнения массива должна быть такой:
extern"C"void __declspec(dllexport) __stdcall Fire( double *outarray, int arraySize )
{
outarray++;
*outarray = 3; // Запись в первый элемент массива
}
В параметре arraySize желательно передать размер массива outarray, чтобы внутри функции Fire можно было контролировать момент выхода за пределы массива.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Так ведь в функции fire ничего не происходит. Во-первых, массив outarray передан по значениям, а не по указателю, т. е. что бы там не записывалось в массив outarray, все это остается внутри функции. Во-вторых, даже если бы и был массив передан правильно, внутри функции fire происходит запись только во второй элемент outarray, а на выходе (в MQL4) читается шестой элемент.
И вообще непонятно, зачем нужен массив inarray.
Scriptong
Спасибо за комент , отрезвил )
В этот массив будут передаваться внешние параметры из советника MQL4 , например значения индикаторов.
Их нужно будет обработать внутри DLL и передать результат советнику .
Да , и еще ! Компилятор , который мне порекомендовали :
DLL "собираю" на 64 р машине.
Похоже МТ4 не может работать с 64 р версией DLL ?
Есть выход ?
Или вход !
Новая версия попытки :
Функция Fire для правильного заполнения массива должна быть такой:
В параметре arraySize желательно передать размер массива outarray, чтобы внутри функции Fire можно было контролировать момент выхода за пределы массива.