¡¡¡Vamos SetLastError!!! - página 2

 
vit46:


No, lo escribo así:


en este caso también está mal.

se ve que cada función devuelve false o -1 si falla.

eso es lo que se usa.

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

Echo de menos esta función en MT4, ¿qué debo hacer?

La función GetLastError( ) se reinicia después de leer su valor. Inserte una lectura extra en blanco antes de la operación que desee.

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

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

en este caso también está mal.

se ve que cada función devuelve false o -1 si falla.

eso es lo que debes usar.


¡Es cierto! Ni siquiera había pensado en eso... porque hay una manera aún mejor, como yo :) puedo escribir funciones complejas que generan sus propios códigos de error.
 
Roger:

La función GetLastError() se reinicia después de leer su valor. Inserte una lectura vacía adicional antes de la operación que desee.


Esa es la cuestión, no quiero poner una lectura antes de la operación requerida cada vez... Tengo todas las operaciones que necesito, así que tengo que hacer GetLastError en la línea:)
 
vit46:

Esa es la cuestión: no quiero poner una lectura antes de la operación requerida cada vez... Tengo todas las operaciones que necesito, así que tengo que hacer GetLastError en la línea:)

Entonces no está claro cómo quieres que funcione tu nueva función. ¿Cómo podría actualizarse por el tiempo o por cualquier otro signo?
 
Me gustaría leer y escribir una variable especial last_error. Manejado el error, puesto a cero - no manejado - el código de error llega al final del programa y se detecta allí.
 
vit46:


No, lo escribo así:

OrderSend(...);

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

Sin ánimo de ofender, esto también es un error.

Lo que hay que controlar es el error de la operación: es decir, lo que devuelve OrderSend (...) y sólo entonces, si es necesario, llamar a GetLastError().

 
Cada uno se vuelve loco a su manera, sólo la gripe hace que todos se unan. (Prostokvashino)
 
VladislavVG:


Así es, funciona como se pretende :) Pero no te ofendas, he mirado tus códigos y no he encontrado ninguna llamada a GetLastError()... La primera mosca que atraviese la ventana destruirá la civilización :)
 
vit46:

Así es, funciona como se pretende :) Pero no te ofendas, he mirado tus códigos y no he encontrado ninguna llamada a GetLastError() ... La primera mosca que atraviese la ventana destruirá la civilización :)
Y mira donde escribí sobre el manejo de errores - hay hilos en el foro ;)