错误、漏洞、问题 - 页 1662

 
fxsaber:

为什么对一个平坦的地方提出警告?

这个函数没有用ucar重载。只有图表。这就是为什么如果常数大于127就会报警的原因。
 
Sergei Vladimirov:
这个函数没有用ucar重载。只有图表。这就是为什么如果常数大于127就会发出警报。
为什么这个错误根本就没有发生?因为对Uchar数组没有重载(如果引用为真)。
 
Alexey Viktorov:

如果它显示的值与事实相似,但在错误的数据上计数,则证明问题出在mql5中,而不是在测试器或可视化器中。

总的来说,感谢你的参与,我将长期与这个问题作斗争。并将在今天检查另一个类似的货币部分。也许是这个地方的蜱虫问题,hz?

检查过了。一切都算得很好。显然,在故事中的一个特定地点,有一个生成 虱子的错误。
 
fxsaber:
那么为什么根本就没有错误呢?uchar数组没有重载(如果帮助是正确的)。
现在,这是一个有效的问题。
 
fxsaber:
那么为什么根本就没有错误呢?因为Uchar数组没有重载(如果帮助是正确的话)。
显然是因为数组是相同的。 char和ucar之间的区别只在于编译器的解释。 事实上,那里也不应该有警告,因为实际上没有什么被截断,你可以验证。
 
Alexey Navoykov:
显然是因为数组是相同的。 char和ucar之间的区别只是在编译器的解释中。 事实上,那里不应该有警告,因为实际上没有什么被截断,你可以自己看。
它被逐个复制到那里。因此,所有有符号<->无符号。
 
A100:

但这(和之前的typedef)是附带的错误--我还没有发现主要的错误,因为在源程序中没有相同签名的typedef(如这个例子)。

我能够做一个接近源程序的测试脚本,在执行过程中出现了错误

//Script1.mq5
typedef int (*GTW)( uint, uint, int );
#import "Script2.ex5"
        void f( GTW );
#import "Script3.ex5"
        int g( uint, uint, int );
#import
void OnStart() { f( g ); }
//Script2.mq5
#property library
typedef int (*GTW)( uint, uint, int );
void f( GTW ff ) export { ff( 0x1, 0x1, 0 ); }
//Script3.mq5
#property library
int g( uint, uint, int ) export
{
        Print( __FUNCSIG__ );
        return 0;
}

结果:'Script2.mq5'中无效的函数指针 调用

现在的诀窍是...- 在所有文件中用GT替换GTW,并检查结果 !

 

请告知语法,如何正确地重写这样的一个函数

MqlTick Func()
{
  MqlTick Tick = {0};
  
  return(Tick);
}

到类似于

MqlTick Func()
{
  return(MqlTick(0));
}

或类似这样的内容

MqlTick Func()
{
  return(new MqlTick);
}

也就是说,不要写一个单独的部分来创建要返回的结构。

 

最近(大约一个月以来)在讨论'工作'服务项目 时,在打了一大堆带有引号和插图的文字后,提交后都进入...第403号洞


不重新发送表格也没有用--重新加载页面后,我必须重新输入所有内容。

亲爱的编辑,请你解释一下为了用户的利益发明了什么新的革命,以及如何摆脱它?
 
Alexander Puzanov:

最近(大约一个月以来)在讨论'工作'服务项目时,在打了一大堆带有引号和插图的文字后,提交后都进入...第403号洞


不重新发送表格也没有用--重新加载页面后,我必须重新输入所有内容。

亲爱的编辑,请你解释一下为了用户的利益发明了什么新的革命,以及如何摆脱它?
在编辑器的左上角,总是按HTML按钮,然后按CTRL+A和CTRL+C,然后再发一个大帖子。这样一来,所有东西都会留在缓冲区内。而如果发生错误。你将不得不再次使用HTML按钮,然后用CTRL+A和CTRL+V。这将节省大量的压力。