Errores, fallos, preguntas - página 2111

 
Vladimir Pastushak:

Todo dentro de los límites normales...


Una vez hubo algo similar cuando un indicador leía datos de un archivo en un array, pero ahora no lo recuerdo...

 

Creado un pedido en espera de

MQL5: Error
Sin procesar, Iniciado: 2018.01.24 16:17, #1940209

Versión del terminal y modo de bits

64 1755

Descripción del problema

Indicador de no descarga,

Instalo el indicador, el indicador funciona, quito el indicador, el indicador se quita y no está en la lista, pero funciona dibuja objetos como si no se quitara, no está en la lista.

Si vuelvo a abrir el gráfico, funciona incluso si el gráfico de otro símbolo.

Hace unos 10 minutos que funciona, no hay ciclos en bucle, todo está en el rango normal, adjunto el código...
 

Un error de compilación

#define \
    MACRO
Además, se esperaba que los saltos de línea funcionaran en TODAS las directivas
 
Vladimir Pastushak:

Creado un pedido en espera de

MQL5: Error
Sin procesar, Iniciado: 2018.01.24 16:17, #1940209

Versión del terminal y modo de bits

64 1755

Descripción del problema

Indicador de no descarga,

Instalo el indicador, el indicador funciona, quito el indicador, se quita y no está en la lista, pero funciona dibuja objetos como si no se hubiera quitado, no está en la lista.

Vuelvo a abrir el gráfico, funciona incluso si el gráfico de otro instrumento.

Lleva unos 10 minutos funcionando, no hay bucles, todo está en el rango normal, adjunto el código...

El mismo problema

 
Evgeny Belyaev:

El mismo problema


¿Recursión?

 
Evgeny Belyaev:

El mismo problema


IndicatorRelease();

 

Error durante la compilación

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

Es necesario compilar el archivo adjunto

¿De dónde he sacado esos "espacios"? Hay muchos de ellos aquí https://www.mql5.com/ru/docs/check/terminalinfointeger. He copiado el fragmento en Microsoft Edge con el ratón

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

Resaltado de macros confuso - independiente del contexto

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

siempre presente (opción B) o siempre ausente (opción A)

//вариант B
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
Se esperaba que si una macro estaba definida en una cadena determinada se resaltara, si no estaba definida no se resaltara. De lo contrario, no está claro qué significa la presencia/ausencia de resaltado
 

Resaltar los archivos C2C++ en el MetaEditor

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

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

No se espera que estas macros (ni tampoco __MQL__) estén disponibles al resaltar archivos con extensiones .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

Este es un caso (como el anterior) en el que el resaltado incorrecto y engañoso es mucho peor que la falta de él

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

Me he encontrado repetidamente con discusiones en el foro de usuarios sobre la falta de MetaEditor de una macro predefinida similar a _WIN64. La respuesta de la administración fue que no es necesario porque MetaEditor genera código universal de 32 a 64 bits al mismo tiempo.

Al mismo tiempo, muchas personas utilizan la alineación https://www.mql5.com/ru/forum/225498/page2#comment_6401835 añadiendo los campos a la estructura

Y, efectivamente, si se utiliza un .dll ya hecho (que no se puede cambiar más), no se puede prescindir de la alineación adicional. Pero en x86 y x64 esta adición puede ser diferente, lo que significa que el análogo _WIN64 sigue siendo necesario porque la estructura se define en la etapa de compilación del archivo .mq5 donde TerminalInfoInteger( TERMINAL_X64 ) no funciona

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

Ahora tenemos que tener en cuenta información adicional. Como resultado de ahorrar en una bagatela, existe el riesgo de obtener un error de evasión

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