Этот форум переведен в режим чтения, просим обсуждать вопросы на форумах MQL4.community и MQL5.community
Передача двумерных массивив в DLL и обратноК списку тем | 1 2 |
|
pxx
22.01.2009 09:21
Передается одномерный массив. DLL: MT4_EXPFUNC double __stdcall ArraySum( double arr[], const int n1, const int n2 ) { double sum = 0; for ( int i = 0; i < n1; i++ ) for ( int j = 0; j < n2; j++ ) sum += arr[ i * n2 + j ]; // т.е. sum += arr[ i, j ]; arr[ 2 * n2 + 1 ] = -1.0; // arr[2][1] = -1.0 return sum; } скрипт: #import "Win32One.dll" double ArraySum( double &arr[][], int n1, int n2 ); #import #define N1 4 #define N2 3 int start() { double a[][N2]; ArrayResize( a, N1 ); double sum = 0; for ( int i = 0; i < N1; i++ ) { for ( int j = 0; j < N2; j++ ) { double value = i * 10 + j; a[ i, j ] = value; // запихиваем что-нибудь в массив sum += value; } } Print( "sum of array = " + sum ); sum = ArraySum( a, N1, N2 ); Print( "ArraySum returns value = " + sum ); Print( "a[ 2, 1 ] (must be -1) = " + a[ 2, 1 ] ); return(0); } лог: |
|
fiqe
23.01.2009 23:57
pxx :
Спасибо. Придётся передавать одномерным если нельзя двумерным. |
К списку тем
| 1 2
Скачай MetaTrader 5 (300 Кб, веб-установщик) — новый терминал для финансовых рынков
