Hallo,
das kannst du nicht über die return Funktion machen. Da du Aufrufparameter als adressen übergeben hast, kannst du in der DLL einfach das Aufrufarray ändern und dann kannst du die geänderten Werte im Metatrader verwenden.
Beispiel wie vorher:
MQL4-Code:
Code:
int init()
{
int tmp;
double a[10]={2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
int b[10]={1,2,3,4,5,6,7,8,9};
tmp = Arrays(a, b);
Print("tmp:",tmp," a:",a[0]," ",a[1]," ",a[2]," ",a[3]," ",a[4]);
return(0);
}
C-Code:
Code:
__declspec (dllexport) int Arrays (double *a, int *b)
{
a[0] += a[1];
a[0] += a[2];
b[0] += b[1];
b[0] += b[2];
a[0] = 1.1;
a[1] = 2.2;
a[2] = 3.3;
a[3] = 4.4;
a[4] = 5.5;
return ((int)a[0] + b[0]);
}
Gruß
yytrader