ArrayCopyRates и dll, что не так

 

Hi All!


Господа, что не так я делаю с ArrayCopyRates?


Взял за основу пример дллки, порезал все лишнее ф-0ция в длл:


DLL_API double __stdcall SetData(const RateInfo* rates,const int rates_total,const int shift,const int nrate)
{
int nitem=rates_total-1-shift;

switch(nrate)
{
case 0: return double(rates[nitem].ctm);
case 1: return rates[nitem].open;
case 2: return rates[nitem].low;
case 3: return rates[nitem].high;
case 4: return rates[nitem].close;
case 5: return rates[nitem].vol;
}

return 5.0;
}


В советнике:


int start()
{

ArrayCopyRates(rates);
double price=MPLSetData(rates,Bars,0,CLOSE_INDEX);

Print("Returned from rates ",rates[Bars-1][CLOSE_INDEX]);
Print("Returned from func ",price);

return(0);
}


В результате видим:


2008.06.18 12:31:02 test_dll EURUSD,M5: Returned from rates 1.2837
2008.06.18 12:31:02 test_dll EURUSD,M5: Returned from func 138

Импорт ф-ции делается как в примере:


double SetData(double rates[][6],int,int,int);