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

 
fxsaber:

Ребята, подскажите, как при Дебаге автоматом видеть значения всех переменных в функции?

Вот зашел в такую, нужно видеть значения всех входных параметров автоматом (без ручного добавления каждого). А когда вышел из нее, чтобы они автоматом исчезли из списка слежения (без ручного удаления).


Современные дебагеры могут такое?

Современные выводят значение любой переменной по наведению мыши. Возвращаемое значение тоже там можно посмотреть. Но не в МетаИдитыре.

 

подписался на сигнал и VPS сервер. Всё выгрузил и синхронизировал. Сделки копируются не все - в чём проблема?

 
Dim78:

подписался на сигнал и VPS сервер. Всё выгрузил и синхронизировал. Сделки копируются не все - в чём проблема?

Ответы содержатся во вкладке "Журнал" терминала.

 

Расскажите, как бороться с предупреждением "hidden method calling". Почитал на форуме, что советует MQ -- не помогает.

Исходник для компиляции -- Plot.mqh. Файл PairArray.mqh -- нестандартная зависимость (остальные стандартные).

Файлы:
Plot.mqh  16 kb
PairArray.mqh  4 kb
 
Stanislav Korotky:

Расскажите, как бороться с предупреждением "hidden method calling". Почитал на форуме, что советует MQ -- не помогает.

Исходник для компиляции -- Plot.mqh. Файл PairArray.mqh -- нестандартная зависимость (остальные стандартные).

curve = m_graphic.CGraphic::CurveAdd(x, type, name);
 
fxsaber:

Да, спасибо, я уже допёр, что у меня метод в промежуточном классе "пропущен".

PS. Уже не в первый раз случается, что сообщения компилятора недостаточно подробные (не только по этой "ошибке"). Если бы были добавлены сигнатуры двух методов, сразу все стало бы понятно.

 
bool Func()
{
  for(int i=1;;++i)
  {
    if(i==1)
      continue;
    if(i==100)
      return false;
  }
}

void OnStart()
{
  Func();
}

Есть такой советник. Выкидывает ошибку

'}' - not all control paths return a value      Test.mq5        10      1

Если закомментировать continue, будет нормально. Мне одному кажется это странным?

 
traveller00:

Есть такой советник. Выкидывает ошибку

Если закомментировать continue, будет нормально. Мне одному кажется это странным?

Если функция объявлена не как void, то обязана возвращать значение:

bool Func()
{
  for(int i=1;;++i)
  {
    if(i==1)
      continue;
    if(i==100)
      return false;
  }
  //---
  return(false);
}
 
Из этой функции единственный выход через i==100. Почему он считает, что появление continue приводит к появлению дополнительного выхода из функции?
 
traveller00:
Из этой функции единственный выход через i==100. Почему он считает, что появление continue приводит к появлению дополнительного выхода из функции?

Единственный или множественный выход - это всё не важно. Важно то, что ВЫ объявили функцию с типом отличным ОТ void - а значит функция ОБЯЗАНА возвращать значение.