Thema: dll Frage
Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 29.10.15
yytrader yytrader ist offline
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

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