Проверить наличие файла библиотеки - страница 3

 

Такой алгоритм

  1. Советник пишется в двух вариантах: один - стандартный, другой (особая комбинация входных параметров) - вызов функции из библы и отправка сообщения.
  2. Запускаем стандартно советник. Он запускает себя же во втором режиме. Если исходный советник получил сообщение от второго - библа есть. Иначе - нет.
 
fxsaber:

Такой алгоритм

  1. Советник пишется в двух вариантах: один - стандартный, другой (особая комбинация входных параметров) - вызов функции из библы и отправка сообщения.
  2. Запускаем стандартно советник. Он запускает себя же во втором режиме. Если исходный советник получил сообщения от второго - библа есть. Иначе - нет.

А пункт 1 сработает в отсутствие библиотеки, если в коде она уже прилинкована (а линковка в MQL только статическая)? По идее, советник не должен загрузиться. Или я не понял идею.

 
Stanislav Korotky:

А пункт 1 сработает в отсутствие библиотеки, если в коде она уже прилинкована?

Не владею терминологией. Много советников с stdlib.ex4. Вроде, без этой библы все запускалось. И краш был только в момент вызова библы.

 
fxsaber:

Не владею терминологией.

Советник один или их все же два разных?

 
Stanislav Korotky:

Советник один или их все же два разных?

Один.

 
fxsaber:

Один.

Тогда он не загрузится без библиотеки.

 
Stanislav Korotky:

Тогда он не загрузится без библиотеки.

Если бы это было так, то ветка теряла бы смысл.

 
fxsaber:

Если бы это было так, то ветка теряла бы смысл.

Наоборот, вопроса бы вообще не возникало, если бы можно было скомпилировать эксперт как-бы с библиотекой, а саму библиотеку не приложить и он бы работал.

 
Stanislav Korotky:

Наоборот, вопроса бы вообще не возникало, если бы можно было скомпилировать эксперт как-бы с библиотекой, а саму библиотеку не приложить и он бы работал.

#import "Unknown.ex5"
   void f();
#import

input bool Run = false;

void OnTick()
{
  if (Run)
    f();
}

Не запускается. Тогда, действительно, нет никакого смысла в этой ветке.


ЗЫ В четверке будет работать.

 
Да, действительно. Если есть обращение (даже просто прописано) вне класса, который использует эту функцию, вылет. Недотестил, сори )
Причина обращения: