错误、漏洞、问题 - 页 2111

 
Vladimir Pastushak:

都在正常范围内...


曾经有类似的情况,当一个指标从一个文件中读取数据到一个数组中时,但我现在不记得了......

 

创建了一个订单,等待

MQL5: 错误
未处理, 开始时间: 2018.01.24 16:17, #1940209

终端版本和位模式

64 1755

问题描述

没有卸下指标。

我安装了指标,指标工作,我删除了指标,指标被删除,它不在列表中,但它的工作原理是绘制对象,好像它没有被删除,它不在列表中。

我重新打开图表,即使是另一个符号的图表,它也能工作。

它已经工作了大约10分钟,没有循环,一切都在正常范围,我附上了代码...
 

一个编译时的错误

#define \
    MACRO
此外,预计换行将在所有指令中发挥作用
 
Vladimir Pastushak:

创建了一个订单,等待

MQL5: 错误
未处理, 开始时间: 2018.01.24 16:17, #1940209

终端版本和位模式

64 1755

问题描述

没有卸下指标。

我安装了指标,指标工作,我删除了指标,指标被删除,它不在列表中,但它的工作原理是绘制对象,好像它没有被删除,它不在列表中。

我重新打开图表,即使是另一个工具的图表,它也能工作。

它已经工作了大约10分钟,没有循环,一切都在正常范围,我附上了代码...

同样的问题

 
Evgeny Belyaev:

同样的问题


递归?

 
Evgeny Belyaev:

同样的问题


IndicatorRelease()

 

编译时出错

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

需要汇编的附件

我从哪里得到这样的 "空间"?这里有很多人https://www.mql5.com/ru/docs/check/terminalinfointeger。 我在Microsoft Edge中用鼠标复制了这个片段

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

令人困惑的巨集突出显示--与环境无关

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

始终存在(选项B)或始终不存在(选项A)。

//вариант B
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
人们期望,如果一个宏被定义在一个特定的字符串中,它将被突出显示,如果它没有被定义,它将不会被突出显示。否则就不清楚有/无高亮意味着什么
 

在MetaEditor中高亮显示C2C++文件

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

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

当高亮显示以.c, cpp, .h为扩展名的文件时,这些宏(还有__MQL__)预计将不可用。

//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

这是一个案例(与前一个案例一样),不正确的、误导性的强调比没有强调要糟糕得多

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

我在论坛上多次遇到用户讨论MetaEditor缺少类似于_WIN64的预定义宏。政府的回答是,没有必要,因为MetaEditor同时生成通用的32-64位代码。

同时,许多人通过将字段附加到结构中来使用https://www.mql5.com/ru/forum/225498/page2#comment_6401835 对齐

而事实上,如果你使用一个现成的.dll(不能再改变),你就不能不进行额外的对齐。但是在x86和x64中,这个加法可能看起来不一样,这意味着_WIN64模拟仍然需要,因为这个结构是在编译.mq5文件的阶段定义的,在这个阶段TerminalInfoInteger( TERMINAL_X64 )不起作用。

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

现在我们必须牢记额外的信息。由于节省了一点小钱,就有可能得到一个难以捉摸的错误。

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