错误、漏洞、问题 - 页 2742

 
fxsaber:
如果从一个MQL-程序中必须一直向文件(RAM-驱动器)中添加一些东西,而从其他程序(和另一个终端)中读取相同的数据,可能会有什么标志和隐患?

数据安全应该得到保证,但我认为至少有两个问题。

- 在同时访问期间没有保证同步性,即有可能重新读取已经读过的数据,同时阻止新的数据被写入 - 碰撞

- 没有办法检测和控制这种情况

像往常一样的解决方案--信号灯或编写你自己的写管理器

ZS:看来有机会在内存中嵌入SQLite,至少可以在那里控制数据库的状态。

 
Alexey Kozitsyn:

在 "五 "中,各项指标的工作情况类似,但一切都很正常,没有冻结。

不,在Five中,指标是在工具流中。

 
Bug MT5 (build 2340)无法从指针对象访问默认的operator=。

class A{
public:
   char data;
   
   // uncomment to fix the bug
   //void operator=(A &a){this.data = a.data;}
};


// bypassing the bug
template<typename P1, typename P2>
void unref_assignment_operator(P1* &p1, P2* &p2){
   struct Functor{
      static void call(P1 &p1, P2 &p2){
         p1 = p2;
      }
   };
   Functor::call(p1, p2);
}

   
void OnStart(){      
   A a1;
   A a2;
   
   a2.data = 0x1;
   a1 = a2;
   printf("%d", (a1.data));               // Ok, 0x1
   
   
   A* a_ptr_1 = &a1;
   A* a_ptr_2 = &a2;
   
   a2.data = 0x2;
   a1.operator=(a2);                      //'operator=' - undeclared identifier 
   printf("%d", (a1.data));               
   
   
   a2.data = 0x3;
   unref_assignment_operator(a_ptr_1, a_ptr_2); 
   printf("%d", (a1.data));               // Ok, 0x3
}
 

修复这个错误--MT终端在试图调试静态结构函数时崩溃了。
即使在上面的例子中,如果你在 "
p1 = p2;"一行抓到一个断点,也会使终端崩溃。

 
Andrey Khatimlianskii:

不,在Five中,指标是在工具流中。

我很抱歉,我很困惑。我只是在想,这就是《第四纪》中的行为(即如《第四纪》--在工具流中)。

那哪里写的是关于MT4指标的通用接口线?

已添加。

指标

所有指标共享图形界面线的资源

一个指标的无限循环将停止终端的工作。


谢谢你的提示,找到了。

那么调试器在MT4中最初是没有考虑到的。他们至少会禁止调用它的指标。

 

我不知道到底该在哪里报告这个错误...我将尝试在这里报告。MT5上问题的实质是:当通过 "+"或"-"按钮使用图表缩放时,图表不能回到正常位置(从屏幕的右边缘缩进)。我不得不一直手动退货。

在MT4上,没有这样的问题。我在几个经纪公司检查过...

按下 "+"后


非常不舒服...我们能解决这个问题吗?

 
Alexey Kozitsyn:

然后发现,调试器最初不是在MT4中设计的。至少他们会有禁止调用的指标。

但它不是一开始就存在的。所以他们没有考虑清楚。

 
Roman Agafonkin:

我不知道到底该在哪里报告这个错误...我将尝试在这里报告。MT5上问题的实质是:当通过 "+"或"-"按钮使用图表缩放时,图表不会回到正常位置(从屏幕的右边缘缩进)。我不得不一直手动退货。

在MT4上,没有这样的问题。我在几个经纪公司检查过...


非常不舒服...我们能解决这个问题吗?

当使用缩放时,缩进会在下一个进入的刻度上恢复到正常状态。

 
SEM:

如果使用缩放,缩进在下一个进入的刻度上恢复正常。

这就是问题所在,它没有......在MT4上它很好......在MT5上 - 唉,它是小毛病...
好的,我将拍摄一段视频并将其添加到这个主题。