Erreurs, bugs, questions - page 1662

 
Sergei Vladimirov:
Il n'y a pas de surcharge de cette fonction avec uchar. Il n'y a que l'omble. C'est pourquoi il émet une alerte si la constante est supérieure à 127.
Pourquoi cette erreur ne se produit-elle pas du tout ? Parce qu'il n'y a pas de surcharge pour les tableaux uchar (si la référence est vraie).
 
Alexey Viktorov:

S'il montre des valeurs similaires à la vérité, mais compte sur les mauvaises données, il s'avère que le problème se trouve dans mql5 et non dans le testeur ou le visualiseur.

D'une manière générale, je vous remercie de votre participation, je vais lutter contre le problème à long terme. Et je vérifierai une autre section similaire de la monnaie aujourd'hui. Peut-être que c'est le problème des tiques à cet endroit, hhz ?

Je l'ai vérifié. Tout compte bien. Apparemment, il y a un bug dans la génération des tics à un endroit particulier de l'histoire.
 
fxsaber:
Alors pourquoi n'y a-t-il pas d'erreur du tout ? Il n'y a pas de surcharge pour les tableaux uchar (si l'aide est correcte).
C'est une question pertinente.
 
fxsaber:
Alors pourquoi n'y a-t-il pas d'erreur du tout ? Parce qu'il n'y a pas de surcharge pour les tableaux uchar (si l'aide est correcte).
Apparemment parce que les tableaux sont identiques. La différence entre char et uchar est seulement dans l'interprétation par le compilateur. En fait, il ne devrait pas y avoir d'avertissement là non plus, car rien n'est réellement tronqué, vous pouvez le vérifier.
 
Alexey Navoykov:
Apparemment parce que les tableaux sont identiques. La différence entre char et uchar ne se situe que dans l'interprétation du compilateur. En fait, il ne devrait pas y avoir d'avertissement à ce niveau, car rien n'est réellement tronqué, vous pouvez le constater par vous-même.
Il y est copié octet par octet. Donc avec tous les signés <-> non signés.
 
A100:

Mais cette erreur (et les précédentes avec typedef) sont des erreurs accidentelles - je n'ai pas encore trouvé la principale, car il n'y a pas de typedef avec la même signature dans le programme source (comme dans cet exemple).

J'ai pu faire un script de test proche du programme source avec une erreur lors de l'exécution

//Script1.mq5
typedef int (*GTW)( uint, uint, int );
#import "Script2.ex5"
        void f( GTW );
#import "Script3.ex5"
        int g( uint, uint, int );
#import
void OnStart() { f( g ); }
//Script2.mq5
#property library
typedef int (*GTW)( uint, uint, int );
void f( GTW ff ) export { ff( 0x1, 0x1, 0 ); }
//Script3.mq5
#property library
int g( uint, uint, int ) export
{
        Print( __FUNCSIG__ );
        return 0;
}

Résultat : appel de pointeur de fonction invalide dans 'Script2.mq5

Et maintenant le truc... - Remplacez GTW dans tous les fichiers par GT et vérifiez le résultat !

 

Veuillez me conseiller sur la syntaxe, comment réécrire correctement une fonction comme celle-ci

MqlTick Func()
{
  MqlTick Tick = {0};
  
  return(Tick);
}

à quelque chose comme

MqlTick Func()
{
  return(MqlTick(0));
}

ou quelque chose comme ceci

MqlTick Func()
{
  return(new MqlTick);
}

C'est-à-dire qu'il ne faut pas écrire une partie distincte créant la structure à renvoyer.

 

Récemment (depuis un mois environ), dans les discussions sur les projets de service "Travail", après avoir tapé un tas de texte avec des citations et des illustrations, après avoir soumis le tout à ... trou n° 403


Le fait de renvoyer le formulaire n'aide pas. Après avoir rechargé la page, je dois tout retaper.

Cher éditeur, pouvez-vous nous expliquer quelle nouvelle révolution a été inventée au profit des utilisateurs, et comment en sortir ?
 
Alexander Puzanov:

Récemment (depuis un mois environ), dans les discussions sur les projets de service "Travail", après avoir tapé un tas de texte avec des citations et des illustrations, après avoir soumis le tout à ... trou n° 403


Le fait de renvoyer le formulaire n'aide pas. Après avoir rechargé la page, je dois tout retaper.

Cher éditeur, pouvez-vous nous expliquer quelle nouvelle révolution a été inventée au profit des utilisateurs, et comment en sortir ?
Dans le coin supérieur gauche de l'éditeur, appuyez TOUJOURS sur le bouton HTML, puis sur CTRL+A et CTRL+C avant d'envoyer un gros message. De cette façon, tout reste dans le tampon. Et si une erreur se produit. Vous devrez utiliser à nouveau le bouton HTML, puis CTRL+A et CTRL+V. Cela vous épargnera beaucoup de stress.
 
Alexander Puzanov:

Récemment (depuis un mois environ), dans les discussions sur les projets de service "Travail", après avoir tapé un tas de texte avec des citations et des illustrations, après avoir soumis le tout à ... trou n° 403


Le fait de renvoyer le formulaire n'aide pas. Après avoir rechargé la page, je dois tout retaper.

Cher éditeur, pouvez-vous nous expliquer quelle nouvelle révolution au profit des utilisateurs a été faite et comment en sortir ?
Il est fort probable qu'un jeton anti-csrf ait été introduit.
(une sorte de signature contrôlant que c'est vous qui enverrez un message au site, et non un attaquant en votre nom via une requête POST à partir d'un formulaire sur votre site).

Le jeton contient une date d'expiration et une signature - quelque chose comme MD5 de (date+site+nom d'utilisateur+sol probablement).
C'est la date d'expiration, et elle est estampillée par le moment où votre message est justifié.

Une demande similaire de ma part :
Amélioration de la logique de traitement des jetons SRF pour la section "Servicedesk".

Ouvert, Démarré : 2016.06.26 18:46, #1502446


Malheureusement, il est toujours là.