mql4} не все пути управления возвращают значение - PullRequest
0 голосов
/ 02 мая 2020

Я взял эту функцию из другого скрипта mql4. Другой скрипт компилируется абсолютно без ошибок. Странно, теперь, когда я скопировал эту функцию в мой скрипт, я получаю ошибку } not all control paths return a value

Я понимаю концепцию возврата значения, но не уверен, когда между скриптами есть разница в компиляции

int ModifyOrder(int ord_ticket,double op, double price,double tp, color mColor)
{
    int CloseCnt, err;

    CloseCnt=0;
    while (CloseCnt < 3)
    {
       if (OrderModify(ord_ticket,op,price,tp,0,mColor))
       {
         CloseCnt = 3;
       }
       else
       {
          err=GetLastError();
          Print(CloseCnt," Error modifying order : (", err , ") " + ErrorDescription(err));
         if (err>0) CloseCnt++;
       }
    }
}

1 Ответ

0 голосов
/ 02 мая 2020

Скорее всего, разница в #property strict. если вы используете строгий режим, вам нужно переопределить локальные переменные, вернуть значение из каждой функции (кроме, конечно, void) и некоторые другие различия. В вашем примере функция должна заканчиваться return CloseCnt; или, возможно, чем-то еще.

Нет способа объявить нестрогий режим - просто не объявляйте строгий режим. После того как вы объявили его, он применяется к этому файлу и включается в другие файлы при импорте.

...