Donnez-moi SetLastError ! !! - page 2

 
vit46:


Non, je l'écris comme ça :


dans ce cas, c'est faux aussi.

vous voyez que chaque fonction renvoie false ou -1 si elle échoue.

c'est ce que vous utilisez.

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

Cette fonction me manque dans MT4, que dois-je faire ?

Lafonction GetLastError() est réinitialisée après avoir lu sa valeur. Insérez un blanc supplémentaire avant l'opération que vous souhaitez.

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

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

dans ce cas, c'est faux aussi.

vous voyez que chaque fonction renvoie false ou -1 si elle échoue.

c'est ce que vous devriez utiliser.


C'est vrai ! Je n'y avais même pas pensé... parce qu'il existe un moyen encore meilleur, comme moi :) je peux écrire des fonctions complexes qui génèrent leurs propres codes d'erreur.
 
Roger:

La fonction GetLastError() est réinitialisée après avoir lu sa valeur. Insérez une lecture vide supplémentaire avant l'opération souhaitée.


C'est le problème, je ne veux pas mettre une lecture avant l'opération requise à chaque fois... J'ai toutes les opérations dont j'ai besoin, donc je dois faire GetLastError sur la ligne :)
 
vit46:

C'est le problème : je ne veux pas mettre une lecture avant l'opération requise à chaque fois... J'ai toutes les opérations dont j'ai besoin, donc je dois faire GetLastError sur la ligne :)

Dans ce cas, la façon dont vous souhaitez que votre nouvelle fonction fonctionne n'est pas claire. Comment pourrait-il se mettre à jour par le temps ou tout autre signe ?
 
Je voudrais lire et écrire une variable spéciale last_error. Géré l'erreur, mis à zéro - non géré - le code d'erreur atteint la fin du programme et y est détecté.
 
vit46:


Non, je l'écris comme ça :

OrderSend(...);

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

Sans vouloir vous offenser, c'est également une erreur.

C'est l'erreur d'opération qu'il faut surveiller : c'est-à-dire ce que renvoie OrderSend (...) et seulement ensuite, si nécessaire, appeler GetLastError().

 
Tout le monde devient fou à sa façon, c'est seulement la grippe qui rassemble tout le monde. (Prostokvashino)
 
VladislavVG:


C'est exact, cela fonctionne comme prévu :) Mais sans vouloir vous offenser, j'ai parcouru vos codes, je n'ai pas trouvé d'appel à GetLastError()... La première mouche qui passera par la fenêtre détruira la civilisation :)
 
vit46:

C'est exact, cela fonctionne comme prévu :) Mais sans vouloir vous offenser, j'ai parcouru vos codes, je n'ai pas trouvé d'appel à GetLastError() ... La première mouche qui passera par la fenêtre détruira la civilisation :)
Et regardez où j'ai écrit sur la gestion des erreurs - il y a des fils de forum ;)