Errori, bug, domande - pagina 2568

 
Artyom Trishkin:

(condizione1 e (condizione2 o condizione3))

grazie

 
Aleksandr Goryachev:

grazie

La cosa interessante è che il codice dice esattamente la stessa cosa.

 
Artyom Trishkin:

La cosa interessante è che il codice dice esattamente la stessa cosa.

Volevo solo chiarire, mi chiedevo...

 

A partire da alcune build, una funzione non è più esportata dalla libreria ( importazione non risolta):

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

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

Questo è dovuto a un parametro definito da typedef. Se viene rimosso, l'esportazione inizia a funzionare. Come e cosa è cambiato MQ? Probabilmente qualcosa con i typedef? Si è scoperto che quando si costruiva la libreria nella build precedente, la firma del parametro era una, ma quando si compila l'EA che usa la libreria nella nuova build, la firma è diversa.

Per chiarire, il cambiamento è avvenuto tra le build 2007 e 2085. Una ricerca nelle note di rilascio non ha dato una risposta.

 
Vict:

0x20

È possibile fare qualcosa del genere in questo esempio?
Cioè, inizializzare un array numerico di char con un valore vuoto, non zero.

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

È possibile fare qualcosa del genere in questo esempio?
Cioè, inizializzare un array numerico di char con un valore vuoto, non zero.

Non vedo perché no
 
Vict:
Non vedo nessuna barriera.

C'è una barriera.

ArrayInitialize(Arr, ' ');

Inizializzato con il numero 32
Per quanto ho capito, non esiste un valore vuoto per un carattere char diverso da '\0'.
Ma questo char inizializza l'array con degli zeri.
La domanda era: è possibile inizializzare con un valore vuoto, non zero.

 
Roman:

C'è una barriera.

Inizializzato con il numero 32
Per quanto ho capito, non esiste un valore vuoto per un carattere char diverso da '\0'.
Ma questo char inizializza l'array con degli zeri.
La domanda era: è possibile inizializzare con un valore vuoto, non zero.

Guarda. Quando dichiarate l'array char a[100], fisicamente significa che 100 byte sono stati allocati sullo stack, tutto qui, sono lì e hanno valori da 0x0 a 0xff
 
Vladimir Simakov:
Guarda. Quando dichiarate l'array char a[100], fisicamente significa che 100 byte sono allocati sullo stack, tutto qui, sono lì e hanno valori da 0x0 a 0xff

Sì, e contiene spazzatura.

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

La domanda era molto diversa. Per inizializzarlo con un valore vuoto, non zero. Se una cosa del genere è possibile.
Lo zero è un numero! Un valore vuoto come lo capisco, nessun numero, niente.
Ma le celle di memoria sono inizializzate con questo vuoto ))

 

MT5 Build 2145 del 17 settembre 2019.

Quando il tester si avvia, disattiva automaticamente il cluster di agenti di rete locale. Se è forzato, la prossima volta che il tester viene avviato lo spegne di nuovo forzatamente.

Così stufo del problema che si trascina per mezzo anno quando improvvisamente la metà degli agenti smette di accettare il lavoro e bisogna forzarli a partire e a rientrare,

e ora devo attivare gli agenti locali ogni volta che il tester si avvia.