Сохранение скомпилированных файлов по условию

 

Очень нужна директива сохранения скомпилированных файлов по условию препроцессора пример:

#ifdef MOEX
#compilefile fmoex.ex5
#endif

#ifdef forex
#compilefile forexfile.ex5
#endif

это конечно напряжно для мера программистов. Но может кто то знает легкий выход. 

 
fmoex.mq5:
#define MOEX
#include "Base.mq5"


forexfile.mq5:

#define forex
#include "Base.mq5"
 
Aleksandr Dziuba:

Очень нужна директива сохранения скомпилированных файлов по условию препроцессора пример:

это конечно напряжно для мера программистов. Но может кто то знает легкий выход. 

а можно мысль более детально ?

обычно иначе делается, 

в одном коротком файле 

#define MOEX

#include "myexpert.mq5"

в другом

#define forex

#include "myexpert.mq5"

и компилируются оба..

PS/ fxsaber опередил :-)

 
fxsaber #:
fmoex.mq5:


forexfile.mq5:

Неужели я так тупо объясняю? Наверное да.

Тема должна была звучать так.  Сохранение скомпилированных файлов под разными именами по условию.

#ifdef MOEX
#savecompilefileas fmoex.ex5
#endif

#ifdef forex
#savecompilefileas forexfile.ex5
#endif
Форум трейдеров - MQL5 community
Форум трейдеров - MQL5 community
  • www.mql5.com
MQL5: форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
 

Посколько времени немного, я вкратце матом объясню )): 




Ну так используйте скрипт с FileMove. MT5 не Visual Studio, тут нет опций посткомпиляции. Можно компилировать из .cmd файла, но это тоже неудобно. Проще скрипт запустить. 






#ifdef MOEX
#define savecompilefileas "fmoex.ex5"
#endif

#ifdef forex
#define savecompilefileas "forexfile.ex5"
#endif

if(!FileMove("source.ex5", 0, savecompilefileas,/*FILE_COMMON|*/FILE_REWRITE))
    Alert("Что-то пошло не так...");



Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • 2023.12.05
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
Alexey Volchanskiy #:

Посколько времени немного, я вкратце матом объясню )): 


лучше бы ты писал про скальпер :-) Кстати, где он ?

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

 
Maxim Kuznetsov #:

лучше бы ты писал про скальпер :-) Кстати, где он ?

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

А зачем про него писать, я в настоящее время ничего не продаю. Где он? Проверил, там же, где и раньше, в папке "E:\Forex\...\MT5_Develop2\MQL5\Shared Projects\ScalpHunter3", никуда не убежал.

А зачем топикстартеру лезть за пределы песочницы? Просьба была переименовать ex5 в зависимости от дефайна. Про компиляцию уже написал, это не MSVS с развитыми средствами пред и пост-билдинга. У нас на МТ5 все простенько, зато даже лохам понятно. Ну, «одураченные питончиком» не в счет )). Когда мне надо было раскидывать результаты компиляции по разным терминалам, просто писал .cmd скрипт и не выеживался.


И задачка на плюсы, если скучно )) 

Почему хваленые ИИ не понимают С++?
Почему хваленые ИИ не понимают С++?
  • 2023.12.06
  • www.mql5.com
Когда долго не извращаешься с true pointers C++, а только с безопасными дескрипторами на MQL, которые по какой-то случайности назвали указателями...
 
Alexey Volchanskiy #:

А зачем про него писать, я в настоящее время ничего не продаю. Где он? Проверил, там же, где и раньше, в папке "E:\Forex\...\MT5_Develop2\MQL5\Shared Projects\ScalpHunter3", никуда не убежал.

А зачем топикстартеру лезть за пределы песочницы? Просьба была переименовать ex5 в зависимости от дефайна. Про компиляцию уже написал, это не MSVS с развитыми средствами пред и пост-билдинга. У нас на МТ5 все простенько, зато даже лохам понятно. Ну, «одураченные питончиком» не в счет )). Когда мне надо было раскидывать результаты компиляции по разным терминалам, просто писал .cmd скрипт и не выеживался.


И задачка на плюсы, если скучно )) 

Да я просто выеживаюсь. Спасибо. Все это я так знаю и применяю. Но так было бы проще. Гораздо проще. Особенное если продукт коммерческий и вариаций 100. К примеру на каждый инструмент свой советник, а база одна. Ну да ладно. Скрипт значит скрипт. 

 
Aleksandr Dziuba #:

Да я просто выеживаюсь. Спасибо. Все это я так знаю и применяю. Но так было бы проще. Гораздо проще. Особенное если продукт коммерческий и вариаций 100. К примеру на каждый инструмент свой советник, а база одна. Ну да ладно. Скрипт значит скрипт. 

Что поделать, ресурсы у MS и MQ совершенно несоизмеримы :)

 
Aleksandr Dziuba #:

Да я просто выеживаюсь. Спасибо. Все это я так знаю и применяю. Но так было бы проще. Гораздо проще. Особенное если продукт коммерческий и вариаций 100. К примеру на каждый инструмент свой советник, а база одна. Ну да ладно. Скрипт значит скрипт. 

База одна, а из разных каталогов, где есть свои включаемые файлы, на неё симлинки со своими именами.

 
JRandomTrader #:

База одна, а из разных каталогов, где есть свои включаемые файлы, на неё симлинки со своими именами.

Ну как вариант. 

Вот только если ты описываешь #define в базе симлинки этого не видят.  Была такая мысль.  Поэтому так как #define должно быть в самой низшей ветке. 

Причина обращения: