È irragionevole avere il rischio di esplodere su una chiamata di funzione di sistema.
Non esagerare perché la stringa è garantita per finire con zero. E inoltre, i caratteri a singolo byte insieme a quelli multibyte sono in realtà parte di Unicode e in MQL funziona tutto bene, il che rende possibile l'output in Experts tab con un font normale (e non con quell'orribile monospaziato).
Questo è come proibire la chiamata dalla funzione dll con argomento uchar[], temendo che l'utente lo riempia in modo errato (per esempio, non finirà con zero), mentre molte funzioni di sistema richiedono esattamente uchar[] e non ushort[] (che incidentalmente può anche essere riempito in modo errato)
La 2a linea è l'output in carattere umano (non monospaziale). Come potete vedere, è tecnicamente facile lasciare il font monospace solo per ::ArrayPrint()
Salve. Per favore, aiutatemi a trovare la causa di questo errore. Sto cercando di convertire un indicatore da mql4 a mql5. Sto usando la seguente "shell" per le funzioni di iHigh:
Come risultato, ottengo l'errore 4301: "simbolo sconosciuto", anche se una stringa restituita dalla funzione Symbol() viene passata come parametro del simbolo. Ecco un pezzo di codice della funzione che chiama iHigh
ENUM_TIMEFRAMES tf=Period();
string symbol = Symbol();
if(filtr1==false)
return(true);
int i1,i2=0;
for(i1=i+1; i2<6; i1++)
{
if(iLow(symbol,tf,i1)<=iLow(symbol,tf,i1+1) &&
iHigh(symbol,tf,i1)>=iHigh(symbol,tf,i1+1))
{
break; //выход из цикла
}
else
{
i2++;
}
}
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Quando l'autore è un moderatore part-time.
Piuttosto, un moderatore e codificatore part-time.
È giusto che l'autore di EAs alla KB rimuova i commenti di terzi nella relativa discussione che evidenziano errori nel suo codice?
No, naturalmente.
È giusto che l'autore di EAs alla KB cancelli i commenti di terzi nella relativa discussione che evidenziano errori nel suo codice?
Non capisco, che senso aveva fare il contrario in MQL?
Non capisco, che senso aveva fare il contrario in MQL?
MQL5 è tutto unicode, quindi abbiamo completamente abbandonato le stringhe a singolo byte.
Non ci credo completamente! Tutto funziona.
Risultato: Ansi è vivo!
Non ci credo completamente! Tutto funziona.
Risultato: Ansi è vivo!
Impacchettare il binario in unicode e poi avere il rischio di esplodere su una chiamata tramite una funzione di sistema non è saggio.
Probabilmente filtrerà tali tentativi più tardi.
È irragionevole avere il rischio di esplodere su una chiamata di funzione di sistema.
Non esagerare perché la stringa è garantita per finire con zero. E inoltre, i caratteri a singolo byte insieme a quelli multibyte sono in realtà parte di Unicode e in MQL funziona tutto bene, il che rende possibile l'output in Experts tab con un font normale (e non con quell'orribile monospaziato).
Questo è come proibire la chiamata dalla funzione dll con argomento uchar[], temendo che l'utente lo riempia in modo errato (per esempio, non finirà con zero), mentre molte funzioni di sistema richiedono esattamente uchar[] e non ushort[] (che incidentalmente può anche essere riempito in modo errato)
La 2a linea è l'output in carattere umano (non monospaziale). Come potete vedere, è tecnicamente facile lasciare il font monospace solo per ::ArrayPrint()
Salve. Per favore, aiutatemi a trovare la causa di questo errore. Sto cercando di convertire un indicatore da mql4 a mql5. Sto usando la seguente "shell" per le funzioni di iHigh:
Come risultato, ottengo l'errore 4301: "simbolo sconosciuto", anche se una stringa restituita dalla funzione Symbol() viene passata come parametro del simbolo. Ecco un pezzo di codice della funzione che chiama iHigh