错误、漏洞、问题 - 页 610

 

你好。

从4到5的切换。我无法理解以下问题。我在include文件中规定了我的类,然后我在专家顾问中使用它。然后我想创建另一个专家顾问,我需要同样的类。我是否需要创建另一个包含文件,或者终端将创建一个现有文件的副本,并将其正确地挂到另一个EA(像MQL4中的函数库)?类是否可以在库中注册,并与几个专家顾问一起使用(就像MQL4中的函数库)?我已经下载了5-th的证书,但我没有找到这个程序的详细描述。 也许,有什么东西可以帮助我理解它?

提前感谢。

 

RedFish:

我是否必须创建另一个包含文件,或者终端将创建现有文件的副本,并将其正确地挂到另一个EA(像MQL4中的函数库)?

当在外部文件中创建一个类时,使该文件的扩展名是mqh而不是mq5,然后 该文件纳入你的任何专家/脚本/指标的项目 中。

你是否可以将类添加到库中,并在几个EA中同时使用它们(像MQL4中的函数库)?

当然!就这样做吧。

 
sergeev:

当在外部文件中创建一个类时,使这个文件的扩展名是mqh而不是mq5,并通过include 将这个文件连接到你的任何EA/Script/指示器项目。

当然!这样做吧。

谢谢你的回答。

如何将带有类的库与专家顾问挂钩?在MQL4中,有#import操作--我列出了函数--#import,关闭它,一切都正常。在MQL5中,这个程序是如何工作的?我在任何地方都找不到关于这个过程的描述......。

再次感谢。

 
RedFish:

谢谢你的回答。

我如何将有课的库与专家顾问挂钩?在MQL4中,有#import操作--我列出了函数--#import,关闭它,一切都正常。在MQL5中,这个程序是如何工作的?我在任何地方都找不到关于这个过程的描述......。

再次感谢你们。

这些点在帮助:https://www.mql5.com/ru/docs/basis/preprosessor 中有详细描述。
Документация по MQL5: Основы языка / Препроцессор
Документация по MQL5: Основы языка / Препроцессор
  • www.mql5.com
Основы языка / Препроцессор - Документация по MQL5
 
Terminal: При авторизации в журнал терминала выводится информация о времени и адресе предыдущего успешного подключения.

这种实施方式导致了安全漏洞--如果交易者突然决定将Invest密码交给其他人,它就会暴露出交易者的IP地址。我检查过了--IP会显示给每个人,无论他们是否使用交易密码或投资者密码连接,以及如何连接。

这意味着在登录时显示最后一次连接的IP(不管最后一次连接是用投资者密码还是交易密码)。

你必须禁用投资者密码的这个功能,只考虑使用交易密码登录。

 
notused:

这种实施方式导致了安全漏洞--如果交易者突然决定将Invest密码交给其他人,它就会暴露出交易者的IP地址。我检查过了--IP会显示给每个人,无论他们是否使用交易密码或投资者密码连接,以及如何连接。

这意味着在登录时显示最后一次连接的IP(不管最后一次连接是用投资者密码还是交易密码)。

你必须禁用投资者密码的这个功能,只考虑使用交易密码登录。

是的,我们可以解决这个问题--我们已经看到了这一点。
 
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
我怎样才能事先准备一个带有逻辑(?)枚举的字符串,如:OBJ_PERIOD_M10| OBJ_PERIOD_H4,然后在ObjectSetInteger()中以胶合字符串的形式替换准备好的变量?我试着用符号把它粘在一起,然后用StringToInteger() 把它包起来,但没有成功......。因为OBJ_PERIOD_...- 是一个枚举 类型的元素,但其标志是int 类型的hex-equivalent?这个枚举看起来更像是位数 OR操作...
 
x100intraday:
我如何在一个字符串前加上布尔(?)枚举,如:OBJ_PERIOD_M10| OBJ_PERIOD_H4,这样我就可以在ObjectSetInteger()中直接替换一个准备好的变量作为一个胶合的字符串?我试着用符号把它粘在一起,然后用StringToInteger() 把它包起来,但没有成功......。因为OBJ_PERIOD_...- 是一个枚举 类型的元素,但其标志是int 类型的hex-equivalent?这个枚举看起来更像是位数 OR操作...

#define 能行吗?

例子。

#define Fl_Fnc __FILE__+" -> "+__FUNCTION__+"(): "
 
tol64:

#define 能行吗?

例子。

我不敢想象如何。实际上,我需要一个灵活的变体,我不需要一个字符串的不变形式,而是需要几个不同的字符串来形成,在一个循环中...如果可能的话,我希望看到一个更具体的例子......

事实上,这个问题归结为其他方面。我想知道,原则上是否有可能从一个包含"OBJ_PERIOD_M30"类型的保留字的字符串中获得实际的OBJ_PERIOD_M30作为枚举 元素,并且实际包含int-value,你可以对其进行操作,如|?这是一个简单的案例。但我想立即将任何形式的 "OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1 "行解释为对数值的位操作,而不需要再输入一个相应数值的数组,以及随后用列表逐个元素 "识别"。

 

下午好,请指教,我需要使用这个结构 void RAssignStringVector(int rhandle, string variable, string &vector[], int size)。

我得到的错误是'vector' - invalid parameter for importfunction mt4R.mqh,我怎样才能传递一个指向字符串数组的指针,这在μl4中是可行的,在5中则不行,这种情况下我应该怎么做?