Errori, bug, domande - pagina 2111

 
Vladimir Pastushak:

Tutto entro i limiti normali...


C'era qualcosa di simile una volta quando un indicatore stava leggendo dati da un file in un array, ma ora non ricordo...

 

Creato un ordine in attesa di

MQL5: errore
Non elaborato, Iniziato: 2018.01.24 16:17, #1940209

Versione del terminale e modalità di bit

64 1755

Descrizione del problema

Indicatore di non scarico,

Installo l'indicatore, l'indicatore funziona, rimuovo l'indicatore, l'indicatore viene rimosso e non è nella lista, ma funziona disegna gli oggetti come se non fosse stato rimosso, non è nella lista.

Riapro il grafico, funziona anche se il grafico di un altro simbolo.

Funziona da circa 10 minuti, nessun ciclo in loop, tutto è nella norma, ho allegato il codice...
 

Un errore di compilazione

#define \
    MACRO
Inoltre, ci si aspettava che i line feed funzionassero in TUTTE le direttive
 
Vladimir Pastushak:

Creato un ordine in attesa di

MQL5: errore
Non elaborato, Iniziato: 2018.01.24 16:17, #1940209

Versione del terminale e modalità di bit

64 1755

Descrizione del problema

Indicatore di non scarico,

Installo l'indicatore, l'indicatore funziona, rimuovo l'indicatore, l'indicatore viene rimosso e non è nella lista, ma funziona disegna oggetti come se non fosse stato rimosso, non è nella lista.

Riapro il grafico, funziona anche se il grafico di un altro strumento.

Funziona da circa 10 minuti, nessun loop, tutto è nella norma, ho allegato il codice...

Lo stesso problema

 
Evgeny Belyaev:

Stesso problema


Ricorsione?

 
Evgeny Belyaev:

Stesso problema


IndicatorRelease();

 

Errore durante la compilazione

int  TerminalInfoInteger( 
   int  property_id      // идентификатор свойства 
   );

L'allegato deve essere compilato

Dove ho trovato questi "spazi"? Ce ne sono molti qui https://www.mql5.com/ru/docs/check/terminalinfointeger. Ho copiato il frammento in Microsoft Edge con il mio mouse

Документация по MQL5: Проверка состояния / TerminalInfoInteger
Документация по MQL5: Проверка состояния / TerminalInfoInteger
  • www.mql5.com
Проверка состояния / TerminalInfoInteger - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
File:
Error157.mq5  1 kb
 

Evidenziazione confusa delle macro - indipendente dal contesto

//вариант A
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
#undef   MACRO //4
#ifdef   MACRO //5
#endif

sempre presente (opzione B) o sempre assente (opzione A)

//вариант B
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
Ci si aspettava che se una macro era definita in una particolare stringa sarebbe stata evidenziata, se non era definita non sarebbe stata evidenziata. Altrimenti non è chiaro cosa significhi la presenza/assenza di evidenziazione
 

Evidenziare i file C2C++ in MetaEditor

https://www.mql5.com/ru/docs/basis/preprosessor/constant

Макрос __MQL5__  доступен при компиляции файла *.mq5, при компиляции *.mq4 доступен макрос __MQL4__.

Queste macro (e anche __MQL__) non dovrebbero essere disponibili quando si evidenziano file con estensioni .c, cpp, .h

//Test.h
#ifndef __MQL__
#define  MACRO
#endif
//Test.mq5
#include "Test.h"
#ifdef  MACRO //не подсвечивается... нормально
#endif
//Test.cpp
#include "Test.h"
#ifdef  MACRO //не подсвечивается... но этот .cpp файл не предназначен для компиляции в MetaEditor,
             //а компилируется в С\С++, где макрос __MQL__ не является предопределенным
             //в результате подсвечивается то что не должно и наоборот не подсвечивается что должно
#endif

Questo è un caso (come il precedente) in cui l'evidenziazione errata e fuorviante è molto peggio della mancanza di essa

Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
  • www.mql5.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression...
 

Ho incontrato ripetutamente discussioni sul forum di utenti sulla mancanza di MetaEditor di una macro predefinita simile a _WIN64. La risposta dell'amministrazione è stata che non ce n'è bisogno perché MetaEditor genera codice universale a 32-64 bit allo stesso tempo.

Allo stesso tempo, molte persone usano l'allineamento https://www.mql5.com/ru/forum/225498/page2#comment_6401835 aggiungendo i campi alla struttura

E infatti, se si usa una .dll già pronta (che non può più essere modificata), non si può fare a meno di un allineamento supplementare. Ma in x86 e x64 questa aggiunta può sembrare diversa, il che significa che l'analogo _WIN64 è ancora necessario perché la struttura è definita nella fase di compilazione del file .mq5 dove TerminalInfoInteger( TERMINAL_X64 ) non funziona

//Test.mq5
#ifdef _WIN64
#define  ALIGN (8-2) //добавить к элементу структуры 6 байт
#else
#define  ALING (4-2) //добавить к элементу структуры 2 байта
#endif

Ora dobbiamo tenere a mente un'informazione in più. Come risultato di risparmiare su un'inezia, c'è il rischio di ottenere un errore sfuggente

Передача структуры в dll C++
Передача структуры в dll C++
  • 2018.01.26
  • www.mql5.com
Пишу dll, которая будет выполнять логику, и собственно возник вопрос. Можно ли передавать в dll структуру данных? Т.е...