错误、漏洞、问题 - 页 2574 1...256725682569257025712572257325742575257625772578257925802581...3184 新评论 Alexey Viktorov 2019.09.23 06:43 #25731 Aleksei Beliakov: 如果你在ontick中打印这些函数的结果,那么它的时间是1970.01.01,价格是0。 它曾经是酒吧时间或价格时间。 所以现在是这样的。 也许你的电脑里有一个错误?我在Build 1220中得到了这个代码。 Print("iHigh ", iHigh(NULL, PERIOD_W1, 0)); Print("iTime ", iTime(NULL, PERIOD_W1, 0)); 版画 2019.09.23 09:41:27.560 00 EURUSD,M5: iTime 2019.09.22 00:00:00 2019.09.23 09:41:27.560 00 EURUSD,M5: iHigh 1.10245 Slava 2019.09.23 06:47 #25732 Aleksei Beliakov: 如果你在ontick中打印这些函数的结果,它是针对时间1970.01.01的价格0。 它曾经是酒吧时间或价格时间。 所以现在是这样的 错误代码 是什么? 测试参数是什么? 是否加载了几周和几个月的数据?一共有多少个? Aleksei Beliakov 2019.09.23 09:22 #25733 Slava: 错误代码 是什么? 测试参数是什么? 是否按周和月上传数据?一共有多少个? 我重新检查了一下,现在一切正常了。 我下载了这个故事。 谢谢你。 Good Beer 2019.09.23 15:09 #25734 我相信这个话题已经被提出来了:应该可以在一个桌面上共存两个不同版本的MT5(禁用自动更新和回滚)。或者至少是测试版和发布版。或者说它是可能的(没有虚拟化)。 Mopo3 2019.09.23 17:37 #25735 记忆观察。 在我的代码中,CopyRates被执行了大约一千次。 然后,报价数组以某种方式被处理,在这一过程的最后,我调用。 ArrayRemove(ArrayQuotes,0,ArraySize)。 ArrayFree(ArrayQuotes)。 ArrayResize(ArrayQuotes,0)。 ArrayFree(ArrayQuotes)。 ZeroMemory(ArrayQuotes)。 (只是实验的方式不同) 结果--内存仍然以几何级数增长并被堵塞,同时处理器的负载也在增加--i7处理器在所有逻辑核心上总共被堵塞了80%,内存超过了Giga。 到目前为止,我已经设法用一个第三方程序来限制资源消耗--CPU不超过15%,内存不超过Giga。 问题是--这是一个错误还是平台的一个特点? [删除] 2019.09.24 10:53 #25736 是否可以硬性选择源编码?我知道,当字符只有ascii时,它是单字节的,否则就是utf-16。可以utf-8吗? [删除] 2019.09.24 14:25 #25737 顺便说一下,奇怪的元编辑行为,应该得到纠正。 fn_call();///////////////////// 双击斜线可以突出显示与前一个字符的斜线(如果那里不是数字/字母)。 为什么不方便?在代码中做了一个临时编辑,这样突出了空间,然后需要快速突出和删除单斜线。 Roman 2019.09.25 17:11 #25738 还是回到从dll传递字符串的问题, wchar_t*作为一个指针。 从 Renat关于在dll中处理字符串的文章 中可以看出,mql类型的字符串 需要一个指向外部dll的字符串wchar_t*的指针。 换句话说,我们向dll发送wchar_t*,并在mql中作为字符串& 接收。 但C函数 wcscpy_s(wchar_t *dest, rsize_t dest_size, const wchar_t *src); 不能正常工作,即在mql中接收到一个指向字符串wchar_t* dest的指针,但失败了,进退两难。 有时终端崩溃,程序被终止。 随着功能 wcscpy(wchar_t *dest, const wchar_t *src); 终端没有崩溃,但字符串也断断续续地到达。 请在下一个版本中更正。 ZS.我忘了说,wchar_t* 指针是从另一个线程传过来的。 也就是说,wcscpy_s或wcscpy函数是在一个单独的线程中调用。 Vladimir Simakov 2019.09.25 18:30 #25739 Roman: 还是要回到从dll中传递字符串的问题, wichar_t*作为一个指针。 从 Renat关于在dll中处理字符串的文章 中可以看出,mql类型的字符串 需要一个指向外部dll的字符串wichar_t*的指针。 换句话说,我们向dll发送wichar_t*,并在mql中作为字符串& 接收。 但由于某些原因,C函数 不能正常工作,即在mql中接收到一个指向字符串wichar_t* dest的指针,但却失败了,进来又出去。 有时终端崩溃,程序被终止。 随着功能 终端没有崩溃,但字符串也断断续续地到达。 请在下一个版本中更正。 ZS.我忘了说,wichar_t* 指针是从另一个线程传递过来的。 也就是说,wcscpy_s或wcscpy函数是在一个单独的线程中调用。 那么谁来为字符串dest分配内存呢? Roman 2019.09.25 18:40 #25740 Vladimir Simakov: 那么谁来为字符串dest分配内存呢? 内存在mql代码中被分配为 #import "Dll.dll" void Func(string task, string & out); #import string оut; StringInit(out, 165, 32); 出,并作为分配的内存 指针传递,因为mql中的字符串在dll中是wchar_t*。 Func("Task", out); 1...256725682569257025712572257325742575257625772578257925802581...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果你在ontick中打印这些函数的结果,那么它的时间是1970.01.01,价格是0。
也许你的电脑里有一个错误?我在Build 1220中得到了这个代码。
版画
如果你在ontick中打印这些函数的结果,它是针对时间1970.01.01的价格0。
错误代码 是什么?
测试参数是什么?
是否加载了几周和几个月的数据?一共有多少个?
错误代码 是什么?
测试参数是什么?
是否按周和月上传数据?一共有多少个?
我重新检查了一下,现在一切正常了。
我下载了这个故事。
谢谢你。
记忆观察。
在我的代码中,CopyRates被执行了大约一千次。
然后,报价数组以某种方式被处理,在这一过程的最后,我调用。
ArrayRemove(ArrayQuotes,0,ArraySize)。
ArrayFree(ArrayQuotes)。
ArrayResize(ArrayQuotes,0)。
ArrayFree(ArrayQuotes)。
ZeroMemory(ArrayQuotes)。
(只是实验的方式不同)
结果--内存仍然以几何级数增长并被堵塞,同时处理器的负载也在增加--i7处理器在所有逻辑核心上总共被堵塞了80%,内存超过了Giga。
到目前为止,我已经设法用一个第三方程序来限制资源消耗--CPU不超过15%,内存不超过Giga。
问题是--这是一个错误还是平台的一个特点?
顺便说一下,奇怪的元编辑行为,应该得到纠正。
fn_call();/////////////////////
双击斜线可以突出显示与前一个字符的斜线(如果那里不是数字/字母)。
为什么不方便?在代码中做了一个临时编辑,这样突出了空间,然后需要快速突出和删除单斜线。
还是回到从dll传递字符串的问题, wchar_t*作为一个指针。
从 Renat关于在dll中处理字符串的文章 中可以看出,mql类型的字符串 需要一个指向外部dll的字符串wchar_t*的指针。
换句话说,我们向dll发送wchar_t*,并在mql中作为字符串& 接收。
但C函数
不能正常工作,即在mql中接收到一个指向字符串wchar_t* dest的指针,但失败了,进退两难。
有时终端崩溃,程序被终止。
随着功能
终端没有崩溃,但字符串也断断续续地到达。
请在下一个版本中更正。
ZS.我忘了说,wchar_t* 指针是从另一个线程传过来的。
也就是说,wcscpy_s或wcscpy函数是在一个单独的线程中调用。
还是要回到从dll中传递字符串的问题, wichar_t*作为一个指针。
从 Renat关于在dll中处理字符串的文章 中可以看出,mql类型的字符串 需要一个指向外部dll的字符串wichar_t*的指针。
换句话说,我们向dll发送wichar_t*,并在mql中作为字符串& 接收。
但由于某些原因,C函数
不能正常工作,即在mql中接收到一个指向字符串wichar_t* dest的指针,但却失败了,进来又出去。
有时终端崩溃,程序被终止。
随着功能
终端没有崩溃,但字符串也断断续续地到达。
请在下一个版本中更正。
ZS.我忘了说,wichar_t* 指针是从另一个线程传递过来的。
也就是说,wcscpy_s或wcscpy函数是在一个单独的线程中调用。
那么谁来为字符串dest分配内存呢?
内存在mql代码中被分配为
出,并作为分配的内存 指针传递,因为mql中的字符串在dll中是wchar_t*。
Func("Task", out);