А в настройках терминала то разрешили вызовы dll?
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 )
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
По сетке сгенерил исходный текст процедуры на СИ (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 неверное, или вызываю не так…
Плииз кто знает, помогите.