Как правильно задать параметры при запуске *.dll?

 
Как правильно задать параметры при запуске *.dll?
Запускаю библиотеку:
#import "Gold1.dll"
bool StartApp();
#import
bool ret;
ret = StartApp();
Не знаю что нужно указать в StartApp();Выдается ошибка: '(' - function definition unexpected C:Program FilesMetaTrader 4expertsindicatorsGoldM1o.mq4 (253, 17)
Никогда не работал с библиотеками, помогите разобраться.После завершения работы приложения, которое запускает библиотека, должен поступать код возврата работы приложения lpExitCode, который указывает на нормальное завершения или ошибку. Как его правильно записать и использовать в создаваемом индикаторе?
 

Простые библиотеки можно использовать - без окон и т.д.

 
RickD писал (а):

Простые библиотеки можно использовать - без окон и т.д.

Уточните, пожалуйста, как и в чем моя ошибка.
 
trading_ivest:
Как правильно задать параметры при запуске *.dll?
Запускаю библиотеку:
#import "Gold1.dll"
bool StartApp();
#import
bool ret;
ret = StartApp();
Не знаю что нужно указать в StartApp();Выдается ошибка: '(' - function definition unexpected C:Program FilesMetaTrader 4expertsindicatorsGoldM1o.mq4 (253, 17)
Никогда не работал с библиотеками, помогите разобраться.После завершения работы приложения, которое запускает библиотека, должен поступать код возврата работы приложения lpExitCode, который указывает на нормальное завершения или ошибку. Как его правильно записать и использовать в создаваемом индикаторе?
У Вас нет параметров в вызываемой функции. Скорее всего, Вы поместили определение функции в тело другой функции. О чем компилятор и сообщает - он в этом месте не ожидал увидеть описание функции. Для более точного "диагноза" нужно полный код смотреть.

Успехов.
 

Vladislav - если Вы в Москве, можно с Вами встретиться и разобраться с моей проблемой. Мой т. 8-905-531-36-07.

 
ret = StartApp(); - вот эта строчка где находится?
 
Integer писал (а):
ret = StartApp(); - вот эта строчка где находится?


Как у меня указано в примере. Все это находится после :
int start()
{//1
.............
#import "Gold1.dll"
#import "bgexec.dll"

bool StartApp(); //- выдается сообщение об ошибке с сылкой на эту строку
#import

bool ret;
ret = StartApp();

...............
}//1
В Gold1.dll я использую еще одну библиотеку - bgexec.dll.

 
Сделай импорт в общей части модуля а не в функции))))))
 
trading_ivest:

Vladislav - если Вы в Москве, можно с Вами встретиться и разобраться с моей проблемой. Мой т. 8-905-531-36-07.

Я в Харькове.
Вынесите код за пределы функции - Вам правильно подсказали.
Последняя прагма #import не нужна - комментируйте.
В коде программ, если это СС++ не забудьте сформировать вызов функции стандартным для длл способом
//--------------------------------------------------------------
// Это есть в примере
#define MT4_EXPFUNC __declspec(dllexport)

//Это Ваша функция
MT4_EXPFUNC bool _stdcall StartApp(void)
{
bool val = false;
....................
return(val);
}
//===================================
иначе получите крэш терминала.
Не забудьте внести имя функции StartApp в .def файл при сборке проекта, иначе эту функцию во внешней части длл видно не будет. Вроде все.
МТ-шный код должен примерно так выглядеть (я предпочитаю .mqh файл использовать, но это не обязательно).
#import  "Gold1.dll"
#import  "bgexec.dll"
   bool StartApp(); //- выдается сообщение об ошибке с сылкой на эту строку
// #import <-------- Это не нужно
 
 
 
int start()
    {//1
.............
 
 bool ret;
   ret = StartApp();
 
...............
   }//1
Если совсем туго будет и программируете на СС++ и устроит VCPP - перешлите код на мыло 4vg@mail.ru - что смогу поправлю. Если не хотите открывать алгоритмы - пишите пример, как Вы его себе представляете - поправлю - будете делать по образу и подобию.
Только сначала обязательно пробуйте сами - так больше пользы.

Успехов.
Причина обращения: