Erreurs, bugs, questions - page 2542

 

Développeurs, salut.

Dans CArrayList de gineric, la capacité est utilisée de manière incorrecte. Si c'est une taille de réserve, elle doit être appelée dans le constructeur comme ceci :

ArrayResize(m_items,0,m_default_capacity);

En ce moment, c'est comme ça :

ArrayResize(m_items,m_default_capacity);

Si vous voulez vous allouer et vous comptabiliser, alors commencez à vous positionner et utilisez partout, y compris bsearch et autres, bien que ce ne soit pas une bonne idée.


PS. En étudiant le code, j'ai découvert que vous passez m_size après tout. Lorsque le tableau est vide, BinarySearch renvoie 0, et non -1.

Et pourquoi devrions-nous organiser la capacité nous-mêmes quand nous l'avons au niveau de ArrayResize ?

PPS. Est-il prévu de créer un LowerBound ?
 

CArrayList présentetrois points essentiels:

1. Penser à supprimer une implémentation supplémentaire de la capacité, puisqu'elle existe déjà dans ArrayResize

2) Correction de BinarySearch pour les tableaux vides. Par défaut, il y a 4 éléments dans le tableau et le 0ème indice est passé en premier et est retourné lorsque la taille du tableau est nulle.

3. il est souhaitable d'ajouter LowerBound. Il est étrange que personne n'ait demandé avant

 
Yevhenii8370:
Pourquoi lorsque j'éteins l'ordinateur et que j'entre dans MT4 le jour suivant, les niveaux ne sont pas sauvegardés ?

Il y a deux possibilités ici - soit il y a un indicateur/conseiller qui nettoie tous les niveaux pendant l'initialisation, soit le jeu n'a pas le temps de sauvegarder. J'ai rencontré les deux problèmes, le premier peut être résolu en modifiant le code, et le second en sauvegardant le jeu deux fois et en chargeant la version sauvegardée audémarrage du terminal.

 
Sergey Dzyublik:

MT5 (build 2118), Combien de temps pouvons-nous encore attendre pour corriger les bogues dans la fonctionnalitétypedef?
Quelques absurdités - un pas à gauche d'un exemple primitif sur l'utilisation de typedef et c'est tout - un tas de bugs bloquant le développement futur.

Merci pour le code.

Bug corrigé.

La version de démonstration de MT4 1192 a été publiée aujourd'hui, essayez d'utiliser MetaEditor 2121 qui est fourni avec MT4 pour compiler les fichiers MQ5.

 

a sorti l'indicateur, laissé ici sur le graphique (ci-joint).

Comment l'enlever ?

J'ai cherché dans la liste des objets - je ne l'ai pas trouvé. J'ai supprimé tous les indicateurs et l'EA - cela n'a pas aidé.

Dossiers :
 
barashka:

a sorti l'indicateur, laissé ici sur le graphique (ci-joint).

Comment l'enlever ?

J'ai cherché dans la liste des objets - je n'ai pas trouvé. J'ai supprimé tous les indicateurs et EA - cela n'a pas aidé.

La liste des objets dispose d'un bouton pour afficher les objets cachés, les supprimer là...

 
Vladimir Pastushak:

Dans la liste des objets, il y a un bouton pour montrer les objets cachés, alors supprimez-les là...

: )
 
Sergey Dzyublik:

https://www.mql5.com/ru/docs/basis/types/classes

Au début, j'ai été surpris, car je ne savais pas que l'offsetof existait.
Mais la réalité a remis tout à sa place :

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- объявим переменную типа Children 
   Children child;   
//--- узнаем смещения от начала структуры  
   Print("offsetof(child.c)=",offsetof(child.c)); 
   Print("offsetof(child.s)=",offsetof(child.s));
}   



offsetof' - fonction non définie

Merci pour le message.

Il y a des erreurs de copier-coller dans l'aide, réparons-les :

à la place du nom de la variable child, il faut indiquer le type de classe Children et à la place de ". (accès au champ) doit être une virgule (offsetof est une macro intégrée (conditionnelle)).

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- узнаем смещения от начала структуры  
   Print("offsetof(Children,c)=",offsetof(Children,c); 
   Print("offsetof(Children,s)=",offsetof(Children,s));
}   

 

Problème avec .NET. Le programme se bloque lorsque la bibliothèque accède à d'autres modules personnalisés, indiquant que le fichier n'est pas trouvé :

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.TypeInitializationException: Инициализатор типа "MDD.IQFeedAPI" выдал исключение. ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "NLog, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c" либо одну из их зависимостей. Не удается найти указанный файл.

Toutes les dll utilisées (y compris la dll NLog.dll mentionnée) sont dans le même dossier, mais pour une raison quelconque, le système ne les voit pas lorsqu'il s'exécute à partir de MT. Cela ne fonctionne bien qu'avec le framework normal. Est-ce que c'est la même chose pour tous, ou est-ce que je rate quelque chose ? Si quelqu'un sait comment résoudre ce problème, je l'apprécierais.

 

Le terminal raccroche lorsque la connexion au serveur est perdue.

Dans des conditions internet instables - stressantes

Raison: