Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ищи и скачивай программы из Code Base через MetaTrader. Это быстро!
Vasyl Nosal
18207
Vasyl Nosal 2014.04.22 07:04 

1) Ошибка обработки глобальныех переменных(4057)

Можно поподробней, примеры какие то? А то столько информации по данному вопросу что аж плутаюсь(ирония).

2) При такой комбинации выдаёт Алерт 0

if(GetLastError()!=0){Alert(GetLastError());return(0);}

3) В справке граматическая ошибка.

4057

ERR_GLOBAL_VARIABLES_PROCESSING

Ошибка обработки глобальныех переменных

Ihor Herasko
8441
Ihor Herasko 2014.04.22 07:33  
eevviill:

2) При такой комбинации выдаёт Алерт 0

if(GetLastError()!=0){Alert(GetLastError());return(0);}

После первого вызова _LastError сбрасывается в ноль. Нужно кэшировать номер ошибки:

int error = GetLastError();
if (error != 0)
   Alert("Ошибка №", error);
Slawa
Модератор
6676
Slawa 2014.04.22 07:42  

1. Например, удаление несуществующей переменной

2. Так и должно быть. Вызов GetLastError() обнуляет значение переменной _LastError (это так было в старой четвёрке, поэтому поведение оставили)

3. Исправим

Vasyl Nosal
18207
Vasyl Nosal 2014.04.22 08:05  

1) Хмм. А как можно удалить глобальную переменную?

2) Примечание

После вызова функции содержимое переменной _LastError не обнуляется. Чтобы обнулить эту переменную, необходимо вызвать функцию ResetLastError().

Тогда в справке исправте.

Спасибо.

Vasyl Nosal
18207
Vasyl Nosal 2014.04.22 08:08  
Scriptong:

После первого вызова _LastError сбрасывается в ноль. Нужно кэшировать номер ошибки:


Спасибо. Это не правильно(что обнуляется).
Ihor Herasko
8441
Ihor Herasko 2014.04.22 08:24  
eevviill:

1) Хмм. А как можно удалить глобальную переменную?

Проверить, что такая переменная существует (GlobalVariableCheck()), а потом только удалять её.
Vasyl Nosal
18207
Vasyl Nosal 2014.04.22 08:44  
Scriptong:
Проверить, что такая переменная существует (GlobalVariableCheck()), а потом только удалять её.

Понял.
Automated-Trading
Админ
88402
Automated-Trading 2014.04.22 12:09  
eevviill:

2) Примечание

После вызова функции содержимое переменной _LastError не обнуляется. Чтобы обнулить эту переменную, необходимо вызвать функцию ResetLastError().

Тогда в справке исправьте.

Справку скорректируем.
Vasyl Nosal
18207
Vasyl Nosal 2014.04.23 05:12  
Quantum:
Справку скорректируем.

А может всё таки чтобы не обнулялась сделать?
Slawa
Модератор
6676
Slawa 2014.04.23 07:09  
eevviill:

А может всё таки чтобы не обнулялась сделать?

Нет. Функциональность старой четвёрки не меняем.

Вы можете сделать собственную функцию, которая будет обращаться к переменной _LastError

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий