почему такое очучение? код покажите.
Сделал из метатрейдерского DLLSample:
(в vc++)
MT4_EXPFUNC int __stdcall GetArrayValue(int* arr, const int x, const int y) { return(arr[x, y]); }
(в mql4)
#import "ExpertSample.dll" int GetArrayValue(int& arr[], int x, int y); ... int Array[4, 4]; ... ... GetArrayValue(Array, x, y);
Поправьте, если что не так делаю...
и как длл узнает размерность массива? ей надо как то сообщить, сколько измерений. и размер одного измерения.
патамучта смещение элемента x-y вычисляется типа так x*N+y.
Вот, вот, я и говорю, что уже обошелся одномерным массивом, достигая последующие измерения умножением, но не очень красиво...
Предполагал, что эти N, M, ... есть в памяти в заголовке массива.
Вот, вот, я и говорю, что уже обошелся одномерным массивом, достигая последующие измерения умножением, но не очень красиво...
Предполагал, что эти N, M, ... есть в памяти в заголовке массива.
А разве в С они есть в заголовке массива ? Вы не перепутали с классом "вектор", случаем ?
Еще вопрос: что бы это значило ? В смысле какой результат Вы ожидаете от такого обращения ? :
MT4_EXPFUNC int __stdcall GetArrayValue(int* arr, const int x, const int y) { return(arr[x, y]); }Массив одномерный, обращаетесь как к двумерному ????? И что, компилятор пропускает ?
Успехов.
А разве в С они есть в заголовке массива ? Вы не перепутали с классом "вектор", случаем ?
Еще вопрос: что бы это значило ? В смысле какой результат Вы ожидаете от такого обращения ? :
Массив одномерный, обращаетесь как к двумерному ????? И что, компилятор пропускает ?Успехов.
Да,
MT4_EXPFUNC int __stdcall GetArrayValue(int* arr[], const int x, const int y) { return(arr[x][y]); }так он компилит, но МТ критическую ошибку делает...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Такое очучение, что при передаче указателя на многомерный массив из MQL4, DLL видит в нем только первое измерение.
(Win32 DLL в VC++6, VC++2008)
Получается, что структура массивов в памяти MQL4 и в VC++ различается?
Я, конечно, уже обошелся одномерным массивом, достигая последующие измерения умножением, но не очень красиво...