Erreurs, bugs, questions - page 2568

 
Aleksandr Goryachev:

Merci.

Ce qui est intéressant, c'est que le code dit exactement la même chose.

 
Artyom Trishkin:

Ce qui est intéressant, c'est que le code dit exactement la même chose.

Je voulais juste clarifier, je me demandais...

 

À partir de certaines constructions, une fonction n'est plus exportée de la bibliothèque ( importation non résolue) :

typedef void (*pOnBookEvent)(const string &symbol);

void OrderBook_Init(pOnBookEvent ptr, const string folder, const bool common, const int offset) export

Ceci est dû à un paramètre défini par typedef. S'il est retiré, l'exportation commence à fonctionner. Comment et qu'est-ce que MQ a changé ? Probablement quelque chose avec les typedefs ? Il s'avère que lors de la construction de la bibliothèque dans la version précédente, la signature du paramètre était unique, mais lors de la compilation de l'EA qui utilise la bibliothèque dans la nouvelle version, la signature est différente.

Pour clarifier, le changement a eu lieu entre les constructions 2007 et 2085. Une recherche dans les notes de mise à jour n'a pas donné de réponse.

 
Vict:

0x20

Est-il possible de faire quelque chose comme cela dans cet exemple ?
C'est-à-dire initialiser un tableau de chars numériques avec une valeur vide, et non zéro.

char Arr[];
ArrayResize(Arr, 5);
ArrayInitialize(Arr, '\0');
   
for(int i=0; i<5; i++)
   Print(Arr[i]);
 
Roman:

Est-il possible de faire quelque chose comme cela dans cet exemple ?
C'est-à-dire initialiser un tableau de chars numériques avec une valeur vide, et non zéro.

Je ne vois pas pourquoi pas
 
Vict:
Je ne vois pas d'obstacles.

Il y a une barrière.

ArrayInitialize(Arr, ' ');

Initialisé avec le numéro 32
D'après ce que j'ai compris, il n'existe pas de valeur vide pour un caractère char autre que '\0'.
Mais ce caractère initialise le tableau avec des zéros.
La question était de savoir s'il était possible d'initialiser avec une valeur vide, non nulle.

 
Roman:

Il y a une barrière.

Initialisé avec le numéro 32
Pour autant que je sache, il n'existe pas de valeur vide pour un caractère char autre que '\0'.
Mais ce caractère initialise le tableau avec des zéros.
La question était de savoir s'il était possible d'initialiser avec une valeur vide, non nulle.

Regardez. Lorsque vous déclarez le tableau char a[100], physiquement cela signifie que 100 octets ont été alloués sur la pile, c'est tout, ils sont là et ils ont des valeurs de 0x0 à 0xff.
 
Vladimir Simakov:
Regardez. Lorsque vous déclarez le tableau char a[100], physiquement cela signifie que 100 octets sont alloués sur la pile, c'est tout, ils sont là et ils ont des valeurs de 0x0 à 0xff.

Oui, et il contient des déchets.

char a[100];
   
for(int i=0; i<100; i++)
   Print(a[i]);

La question était tout à fait différente. Pour l'initialiser avec une valeur vide, non nulle. Si une telle chose est possible.
Le zéro est un chiffre ! Une valeur vide comme je le comprends, pas de chiffres, rien.
Mais les cellules de mémoire sont initialisées avec ce vide ;))

 

MT5 Build 2145 du 17 septembre 2019.

Lorsque le testeur démarre, il désactive automatiquement le cluster d'agents du réseau local. S'il est mis en marche de force, au prochain démarrage du testeur, il le met de nouveau en marche de force.

J'en ai marre de ce problème qui traîne pendant six mois, quand soudain la moitié des agents n'acceptent plus le travail et que vous devez les forcer à partir et à revenir,

et maintenant je dois activer les agents locaux à chaque fois que le testeur démarre.

 
Roman:

Oui, et il contient des déchets.

La question était tout à fait différente. Pour initialiser avec une valeur vide, pas zéro. Si une telle chose est possible.
Le zéro est un chiffre ! Une valeur vide comme je le comprends, pas de chiffres, rien.
Mais les cellules de mémoire sont initialisées avec ce vide ;))

Comment l'imaginez-vous ?

Un emplacement mémoire contient toujours quelque chose. Un seul octet peut contenir un nombre compris entre 0 et 255.

Une valeur vide n'est pas fournie.