Даеш SetLastError!!! - страница 2

 
vit46:


Нет я пишу так:


в этом случае это тоже неверно.

вы же видите, что каждая функция возвращает false или -1, в случае неудачи.

вот это и используйте.

int ticket=OrderSend();
if (ticket<0) // и только после этого
{  GetLastError()  }
 
vit46:

Очень нехвотает этой функции в MT4 что делать помогите!

Функция GetLastError() обнуляется после чтения ее значения. Вставьте дополнительное пустое считывание перед нужной Вам операцией.

int err=GetLastError();
OrderSend(...);

if (GetError()==конкретный номер){
         // код обработки сброс ошибки или наоборот
         SetError(0);
         }
else if(...)
 
sergeev:

в этом случае это тоже неверно.

вы же видите, что каждая функция возвращает false или -1, в случае неудачи.

вот это и используйте.


вот это действительно правильно! я даже не подумал об этом... потому что есть еще лучший способ, как у меня :) я могу писать сложные функции которые генерируют собственные коды ошибок.
 
Roger:

Функция GetLastError() обнуляется после чтения ее значения. Вставьте дополнительное пустое считывание перед нужной Вам операцией.


в том то и дело что я не хочу ставить каждый раз считывание перед нужной операцией... у меня все операции нужные так выходит что мне через строчку надо GetLastError делать:)
 
vit46:

в том то и дело что я не хочу ставить каждый раз считывание перед нужной операцией... у меня все операции нужные так выходит что мне через строчку надо GetLastError делать:)

Тогда непонятно, как бы Вы хотели, чтобы предложенная Вами новая функция работала. Как она сможет сама обновляться по времени или еще по каким признакам?
 
Я бы хотел читать и записывать специальную переменную last_error. Обработал ошибку, установил в ноль - не обработал - код ошибки достигает конца программы и обнаруживается там.
 
vit46:


Нет я пишу так:

OrderSend(...);

if (GetError()==конкретный номер){
         // код обработки сброс ошибки или наоборот
         SetError(0);
         }
else if(...)
...
...
// и в конце программы
if (GetError()) >0){
        // гдето необработанное исключение или ошибка номер...
        // просто сообщение об ошибке
        }

Без обид - это тоже неверно.

Нужно котнролировать именно ошибку операции: то есть то, что возвращает OrderSend(...) и только потом, при необходимости, вызывать GetLastError().

 
Каждый с ума по своему сходит, это только гриппом все вместе болеют. (Простоквашино)
 
VladislavVG:


Да все верно что работает как задумано :) А вот без обид я посмотрел ваши коды там не нашел ни одного вызова GetLastError() ... первая же муха влетевшая в форточку разрушит цивилизацию :)
 
vit46:

Да все верно что работает как задумано :) А вот без обид я посмотрел ваши коды там не нашел ни одного вызова GetLastError() ... первая же муха влетевшая в форточку разрушит цивилизацию :)
А посмотрите там, где я писал об обработке ошибок - есть темы по форуму ;)
Причина обращения: