Вызов функции из скомпилированной dll не получается – плииз подскажите, кто знает.

 
В Statistica Neural Networks сделал простую нейросетку – 2 входа, 1 выход (сумма входов), которую обучил на 11 примерах.
По сетке сгенерил исходный текст процедуры на СИ (gen01.c прилагается)
Далее с помощью С++ Builder 5.5 скомпилил gen01.dll
Далее сделал советник, который вызывает функцию gen0104Run из этой dll.

#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#import "gen01.dll"
int gen0104Run( double inputs[], double outputs[], int outputType );
#import

int i, l;
double in[2]={2, 1};
double out[1]={0};

int start()
{
i=gen0104Run(in, out, l);
return(0);
}


Ругается так: dll calls are not allowed; 'gen01.dll'-'gen0104Run'

Объявление функции и dll вроде согласно руководства, файл gen01.dll в experts\libraries
Неясно, в чем проблема - dll –ку не видит или не понимает, может не так скомпилилась, может dll скомпилированную на C++ Builder 5.5 не понимает советник, или объявление функции или dll неверное, или вызываю не так…

Плииз кто знает, помогите.
 
А в настройках терминала то разрешили вызовы dll?
 
файлы
Файлы:
 
Gans-deGlucker писал (а) >>
А в настройках терминала то разрешили вызовы dll?

Ха, нет, не разрешил.

Теперь так ругается:

cannot call function 'gen0104Run' from dll 'gen01.dll' (error 127)


 
ramel333 >>:

Ха, нет, не разрешил.

Теперь так ругается:

cannot call function 'gen0104Run' from dll 'gen01.dll' (error 127)

Ваша DLL не экспортирует функцию 'gen0104Run'.

Экспортируемую функцию в исходном коде необходимо объявить следующим образом (см. пример %TerminalPath%\experts\samples\DLLSample\):

__declspec(dllexport) void __stdcall gen0104Run( double inputs[], double outputs[], int outputType )
 
Ilnur писал (а) >>

Ваша DLL не экспортирует функцию 'gen0104Run'.

Экспортируемую функцию в исходном коде необходимо объявить следующим образом (см. пример %TerminalPath%\experts\samples\DLLSample\):

 

to Ilnur

        Respect, все получилось.