Ошибка 4057 и GetLastError()

 

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

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

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

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

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

4057

ERR_GLOBAL_VARIABLES_PROCESSING

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

 
eevviill:

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

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

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

int error = GetLastError();
if (error != 0)
   Alert("Ошибка №", error);
 

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

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

3. Исправим

 

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

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

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

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

Спасибо.

 
Scriptong:

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


Спасибо. Это не правильно(что обнуляется).
 
eevviill:

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

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

Понял.
 
eevviill:

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

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

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

Справку скорректируем.
 
Quantum:
Справку скорректируем.

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

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

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

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

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