错误、漏洞、问题 - 页 1970 1...196319641965196619671968196919701971197219731974197519761977...3184 新评论 pavlick_ 2017.08.21 16:01 #19691 pavlick_:在我的脚本中得到了一个错误,试图对它进行本地化,所以它暂时被绕过了。我想我找到了。if(sizeof(color) <= sizeof(ulong)) { if( ObjectCreate(0, "any_object", OBJ_TREND, 0, 0, 0) && ObjectSetInteger(0, "any_object", OBJPROP_COLOR, clrNONE) ) { ulong clr; if( ObjectGetInteger(0, "any_object", OBJPROP_COLOR, 0, clr) ) { Alert("clr == clrNONE ? ", clr == (ulong)clrNONE); Alert("clrNONE value = ", (ulong)clrNONE); Alert("value that was returned = ", clr); } } }警报。clr == clrNONE ? falseclrNONE值=4294967295返回的值 = 18446744073709551615 也就是说,我们为对象设置颜色clrNONE,然后我们读取对象的颜色 并与clrNONE进行比较--它们没有收敛。 A100 2017.08.21 16:27 #19692 pavlick_:即:将对象的颜色设置为clrNONE,然后读取对象的颜色 读取另一个物体的颜色 pavlick_ 2017.08.21 16:36 #19693 A100: 读取另一个物体的颜色是的,谢谢你。我修复了那里的名字,但错误仍然存在。 fxsaber 2017.08.21 16:47 #19694 pavlick_:设置对象的颜色为clrNONE,然后读取对象的颜色,与clrNONE进行比较 - 它们不匹配。Alert("clr == clrNONE ? ", (color)clr == clrNONE); // true clrNONE -4个 字节的所有位都填上1。ulong clr -8个 字节的所有位都填上1。 A100 2017.08.21 17:09 #19695 pavlick_:是的,谢谢你。我修复了那里的名字,但错误仍然存在。事实上,在ObjectGetInteger 中,代替了void ObjectGetInteger( long& x ) { x = clrNONE; } .void ObjectGetInteger( long& x ) { x = -1; } 解决办法:然后到处写x而不是x。(color)x pavlick_ 2017.08.21 17:14 #19696 fxsaber:clrNONE -4个 字节的所有位都是1。ulong clr -8个 字节的所有位都填上1。我认为这里有某种错误。 1. clrNONE是一个4字节的正数,因为Alert( long(clrNONE) ) == 4294967295 (如果它是负数(颜色符号),它将进入减号。)2.我们在SetInteger中把它转换为long,但数值不能改变。3.为什么我在SetInteger中得到了一个非主要的数字?要么是终端里面的颜色被转换为有符号的类型,例如int,然后在转换为沿时增长,要么就是其他的东西。 pavlick_ 2017.08.21 17:31 #19697 再次,非常感谢你们所有人。我几乎可以肯定,里面的颜色是浇铸出来的,有反向浇铸和误差。好吧,就看开发者如何写一个有效的ObjectGetInteger(),它只需要几个字符: ObjectGetInteger() { return long((uint)internal_clr); } fxsaber 2017.08.21 17:39 #19698 这到底是不是一个错误(不同的数组)?void OnStart() { short Data[] = {1}; short Data2[]; StringToShortArray(ShortArrayToString(Data), Data2); // StringToShortArray(ShortArrayToString(Data), Data2, 0, ArraySize(Data)); // так массивы совпадут ArrayPrint(Data); // 1 ArrayPrint(Data2); // 1 0 } TheXpert 2017.08.21 17:43 #19699 fxsaber: 这到底是不是一个错误(不同的数组)? 没有,只是最后加了一个0。 fxsaber 2017.08.21 17:46 #19700 Комбинатор: 不,它只是添加了一个终止的0。在上面添加了一行--指定复制行的长度。它开始匹配。也就是说,事实证明,输入参数count = -1在结尾处增加了0,而count = StringLen则没有增加。Nyuansyk! 1...196319641965196619671968196919701971197219731974197519761977...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在我的脚本中得到了一个错误,试图对它进行本地化,所以它暂时被绕过了。
我想我找到了。
警报。
clr == clrNONE ? false
clrNONE值=4294967295
返回的值 = 18446744073709551615
即:将对象的颜色设置为clrNONE,然后读取对象的颜色
读取另一个物体的颜色
是的,谢谢你。我修复了那里的名字,但错误仍然存在。
设置对象的颜色为clrNONE,然后读取对象的颜色,与clrNONE进行比较 - 它们不匹配。
clrNONE -4个 字节的所有位都填上1。
ulong clr -8个 字节的所有位都填上1。
是的,谢谢你。我修复了那里的名字,但错误仍然存在。
事实上,在ObjectGetInteger 中,代替了
.
解决办法:然后到处写x而不是x。
clrNONE -4个 字节的所有位都是1。
ulong clr -8个 字节的所有位都填上1。
我认为这里有某种错误。
1. clrNONE是一个4字节的正数,因为Alert( long(clrNONE) ) == 4294967295 (如果它是负数(颜色符号),它将进入减号。)
2.我们在SetInteger中把它转换为long,但数值不能改变。
3.为什么我在SetInteger中得到了一个非主要的数字?
要么是终端里面的颜色被转换为有符号的类型,例如int,然后在转换为沿时增长,要么就是其他的东西。
这到底是不是一个错误(不同的数组)?
不,它只是添加了一个终止的0。
在上面添加了一行--指定复制行的长度。它开始匹配。也就是说,事实证明,输入参数count = -1在结尾处增加了0,而count = StringLen则没有增加。Nyuansyk!