Так ведь в функции fire ничего не происходит. Во-первых, массив outarray передан по значениям, а не по указателю, т. е. что бы там не записывалось в массив outarray, все это остается внутри функции. Во-вторых, даже если бы и был массив передан правильно, внутри функции fire происходит запись только во второй элемент outarray, а на выходе (в MQL4) читается шестой элемент.
И вообще непонятно, зачем нужен массив inarray.
да ,верно - правильно будет
Buffer2[i]=outarray[1];
по указателю так ?
void __stdcall Fire(double *inarray[10], double *outarray[10])
Массив inarray будет задействован
Новая версия попытки :
/* libfire.h */ #ifdef LIBFILE_EXPORT #define LIBFILE_API __declspec(dllexport) #else #define LIBFILE_API __declspec(dllimport) #endif extern "C" { LIBFILE_API void __stdcall Fire( double *outarray); } ======================================================= /* libfire.cpp */ #define LIBFILE_EXPORT #include "libfire.h" void __stdcall Fire( double *outarray ) { outarray[1] = 3 ; } //-------------------------------------------------------------------- #property indicator_separate_window // Индик. рисуется в основном окне #property indicator_buffers 1 // Количество буферов #property indicator_color1 Blue // Цвет первой линии #import "mydll.dll" // подключаем нашу DLL void Fire( double & outarray[10]); //функция из нашей DLL #import double outarray[10] ; double Buf_0[] ; // Объявление массивов (под буферы индикатора) //-------------------------------------------------------------------- int init() // Специальная функция init() { SetIndexBuffer(0,Buf_0); // Назначение массива буферу SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2); // Стиль линии } //-------------------------------------------------------------------- int start() { int i ; i=200; // Индекс первого непосчитанного while(i>=0) // Цикл по непосчитанным барам { // Fire( outarray) ; Buf_0[i]= outarray[1] ; i--; } }
DLL "собираю" на 64 р машине.
Похоже МТ4 не может работать с 64 р версией DLL ?
Есть выход ?
Или вход !
Странно , в компиляторе по умолчанию стоит 32 р

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Кто разобрался с DLL подскажите пожалуйста в чем проблема.
Есть два файла на С++.
Первый
Второй
И индикатор , который должен рисовать значение функции в DLL
Почему то ничего не рисуется ((