Вызов функций из библиотеки, не пренадлежащих оной.

 
Если ли хоть какая то возможность реализовать, что бы сохранилась эта функциональная возможность - вызов функций из библиотеки?
Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
Приведите пример, пожалуйста.

 

код библиотеки:

void F()export
{
Print(f());
}

код программы:

#import "lib.ex5"
void F();
#import

void OnStart()
{
  F();
}

string f()
{
  return("!");
}
 
joo:

код библиотеки:

код программы:

Андрей ты меня пугаешь. Откуда либе "lib.ex5" знать что за код имеет стринг функкция f ?????

Но для твоего случая можно вызывать либу из либы.

//+------------------------------------------------------------------+
//|                                                           ff.mq5 |
//+------------------------------------------------------------------+
#property library
string ff()export
  {
   return("!");
  }
//+------------------------------------------------------------------+
//|                                                            F.mq5 |
//+------------------------------------------------------------------+
#property library
#import "ff.ex5"
string ff();
#import
void F()export
  {
   Print(ff());
  }
//+------------------------------------------------------------------+
//|                                  Вызов_функций_из_библиотеки.mq5 |
//+------------------------------------------------------------------+
#import "F.ex5"
void F();
#import
void OnStart()
  {
   F();
  }
 
Urain:

Откуда либе "lib.ex5" знать что за код имеет стринг функкция f ?????

Ниоткуда, конечно. В прочем, так же как и в твоем примере функция F() ничего не знает о ff(), кроме того, что ff() "где то" есть, хотя работать твоя конструкция будет. Но в твоем примере, к тому же, функция ff() не имеет доступа ни к каким другим функциям программы.


 

Вообще в каком-нибудь языке есть так, что библиотека видит просранство из котрого она вызывается?

Пользуйтесь инклудом. 

 

 
Integer:

Вообще в каком-нибудь языке есть так, что библиотека видит просранство из котрого она вызывается?

Вопрос же заключается в другом "Если ли хоть какая то возможность реализовать, что бы сохранилась эта функциональная возможность - вызов функций из библиотеки?", то есть не прямо в лоб, может быть есть какие то способы обходные.

Integer:

Пользуйтесь инклудом. 

Не катит, по нескольким причинам. Одна из причин - собираюсь продавать эксперты через маркет, построенные по модульнуму типу отдельно побиблиотечно.

Иначе бы я не парился с такими вопросами.

 
Андрей, кинь мне минимальный костяк, с которым проблемы, не синтетический пример, а тот, с которым у тебя реально траблы, попробую разрулить.
 
joo:

... может быть есть какие то способы обходные ...

Можно использовать виртуальность методов.
 
TheXpert:
Андрей, кинь мне минимальный костяк, с которым проблемы, не синтетический пример, а тот, с которым у тебя реально траблы, попробую разрулить.
Покамест нет костяка, только преступил к проработке концепта.
 
mql5:
Можно использовать виртуальность методов.
Про виртуальность методов помню и использую. Но как быть, если класс прописан в либе, а виртуальный метод в основной части программы? - ведь тогда даже не удастся объявить дочерний объект класса, прописанного в либе.
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5