Ошибки, баги, вопросы - страница 3450

Anatoli Kazharski #:

Примерно так и делаю сейчас, но хотелось бы упростить насколько возможно и избавится от "лишних" файлов. 

Не работаю на C/C++. Просто проверил, что там это работает, а мне нужно именно это в более сложной структуре проекта. 

собирайте из командной строки. Там помниться есть параметр /Include: 

Anatoli Kazharski #:

Без примера не получилось.

Как это должно выглядеть?

#define APP_PATH 
// #define APP_PATH2

#ifdef APP_PATH
  #include <..\Experts\Test\App.mqh>
#endif

#ifdef APP_PATH2
  #include <..\Experts\Test\App2.mqh>
#endif
Ошибка при компиляции:
void OnStart()
{
    class A {}
    *a = new A;
    ZeroMemory(*a); //Error: '*' - variable expected
}

В 4078 странно отбражается баланс, более поздние беты не пробовал на боевом, жду релиза:

На другом счёте 4073, там нормально:


Maxim Kuznetsov #:

собирайте из командной строки. Там помниться есть параметр /Include: 

fxsaber #:

Спасибо. К сожалению не подходят эти варианты. 

Возможно мне нужно сформулировать свой вопрос иначе, чтобы показать сложность относительно структуры всего проекта.

JRandomTrader #:

В 4078 странно отбражается баланс, более поздние беты не пробовал на боевом, жду релиза:

На другом счёте 4073, там нормально:


что именно смущает ?

строка "обязательства" ?? так это кредит...ACCOUNT_CREDIT (который кстати не показывается в сигналах, чем невозбранно пользуются)

Maxim Kuznetsov #:

что именно смущает ?

Средства и свободная маржа.

struct STRUCT
{
  MACROS(int Integer);
  MACROS(double Double);
};

void OnStart()
{
  STRUCT Tmp;
  
  Print(Tmp.ToString()); // Integer, Double
}

Не получается придумать конструкцию задания полей в структуре, чтобы можно было вывести их имена в строку.

В коде выше нужно придумать любую такую конструкцию в месте, которое подсвечено. Если будут варианты - отлично.


Название поля должно прописываться в коде один раз.

fxsaber #:

Не получается придумать конструкцию задания полей в структуре, чтобы можно было вывести их имена в строку.

В коде выше нужно придумать любую такую конструкцию в месте, которое подсвечено. Если будут варианты - отлично.

Название поля должно прописываться в коде один раз.

Может быть так?

#define MACROS(type, name) type name; static string name##Name() { return #name; }

struct STRUCT {
  
  MACROS(int, Integer);
  MACROS(double, Double);

  string ToString() {
    return IntegerName() + ", " + DoubleName();
  }
};

void OnStart() {
  
  STRUCT Tmp;
  
  Print(Tmp.ToString()); // Integer, Double
}
Anatoli Kazharski #:

Может быть так?

К сожалению, в такой реализации при добавлении нового поля требуется дописывать метод ToString.