错误、漏洞、问题 - 页 2580 1...257325742575257625772578257925802581258225832584258525862587...3184 新评论 Roman 2019.09.29 05:16 #25791 Koldun Zloy: 1.在MQL中,复制的是一个字符串,而不是一个指针。 _DLLAPI void fnReplaceString(wchar_t * text, wchar_t *from, wchar_t * to) { wchar_t * cp; //проверка параметров if(text==NULL || from==NULL || to==NULL) return; if(wcslen(from)!=wcslen(to)) return; //поищем подстроку if((cp=wcsstr(text,from))==NULL) return; //заменим memcpy(cp,to,wcslen(to)*sizeof(wchar_t)); } #import "MQL5DLLSamples.dll" void fnReplaceString(string & text, string from, string to); #import 第3.3节 Roman 2019.09.29 05:50 #25792 Koldun Zloy: 2.你在MQL中强调了一个200个字符的行。然后你复制了164个字符到里面。之后,在MQL中看一下字符串的大小。它仍然是200。 长度,而不是尺寸!长度为字符,大小为字节。 检查了,在得到一个164个字符的字符串后,是的,长度仍然是200。 对此有什么想法吗? Koldun Zloy 2019.09.29 07:15 #25793 Roman: 所以为了使它正确,我放弃了memcpy,而使用wcscpy或wcsncpy。结果,上面的帖子。 我的意思是sizeof( wchar_t* )。 Koldun Zloy 2019.09.29 07:16 #25794 Roman: 第3.3节 你最好不要和我争论,而是更仔细地阅读这篇文章。并弄清楚那里发生了什么事。 那么你就不会有任何问题了。 你想做的事其实没有那么复杂。 Koldun Zloy 2019.09.29 07:17 #25795 Roman: 长度,而不是尺寸!长度为字符,大小为字节。 检查了,在得到一个164个字符的字符串后,是的,长度仍然是200。 对此有什么想法吗? 为什么会出现这种情况,上面已经解释过了。 Roman 2019.09.29 10:11 #25796 Koldun Zloy: 你想做的事其实并不难。 所以告诉我,如果这不是那么困难。还是你认为这是正常的行为? Koldun Zloy 2019.09.29 12:31 #25797 Roman: 所以告诉我,如果这不是那么困难。还是你认为这是正常的行为? 所以你根本不打算了解什么,只是给你一个现成的食谱,就这样? 我不明白如果编程对你来说是一种负担,你为什么要做编程,但这取决于你。 你认为如果你问了一个问题而不想展示详细的可重复的代码,会有人愿意帮助你吗? 或者不读,或者与那些知道得更多的人争论? 因此,不会有一个现成的食谱。我将写一个从DLL中获取字符串的一般原则。如果你认为自己是个程序员,你可以自己编写代码。 1.在MQL中,你创建了ushort数组。 初始化它。 3.将数组和它的大小传递给DLL。 4.在DLL中,使用wmemcpy_s()函数将一个字符串复制到这个数组。 5.返回从DLL复制的字符串的长度。 6.在MQL中,使用ShortArrayToString()函数从阵列中创建一个字符串。 Vladimir Karputov 2019.09.29 16:50 #25798 与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。 Stanislav Korotky 2019.09.29 22:29 #25799 在其中一个服务器上(不是MQ),MT5变得很疯狂--它将CPU负载到100%,并密集地记录不同工具的这些信息。 图表在闪烁。这是不可能的工作。 有没有可能在本地解决这个问题,或者唯一的出路是等待服务器完成一些游戏? Roman 2019.09.29 23:24 #25800 Koldun Zloy: 所以你根本不打算了解什么,只是给你一个现成的食谱,就这样? 我不明白如果编程对你来说是一种负担,你为什么要做编程,但这取决于你。 你认为如果你问了一个问题而不想展示详细的可重复的代码,会有人愿意帮助你吗? 或者不读,或者与那些知道得更多的人争论? 因此,不会有一个现成的食谱。我将写一个从DLL中获取字符串的一般原则。如果你认为自己是个程序员,你可以自己编写代码。 1.在MQL中,你创建了ushort数组。 初始化它。 3.将数组和它的大小传递给DLL。 4.在DLL中,使用wmemcpy_s()函数将一个字符串复制到这个数组。 5.返回从DLL复制的字符串的长度。 6.在MQL中,使用ShortArrayToString()从阵列中创建一个字符串。 你认为这里有什么论据?这是一个工作上的讨论,没有必要把意思扭曲成一个鸡窝,带着傲慢的悲情。 你并没有要求任何现成的东西。我以为你和指针有一个解决方案,但你没有。 是你没有读过这个主题,这里已经讨论数组很长时间了,大家都很清楚。 而我很久以来一直倾向于数组。但既然mql有字符串,为什么不直接使用它呢? 我们在这里讨论的正是mql的字符串中的这个错误,即把一个指针复制到其中。 我再告诉你,并不是只有通过ushort才能解决一切问题。数组有很多选择。 但在我的情况下,我不想使用数组,因为代码结构并不总是合理的。 更何况我有mql的字符串,我可以直接使用,但它必须正常工作。 1...257325742575257625772578257925802581258225832584258525862587...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1.在MQL中,复制的是一个字符串,而不是一个指针。
第3.3节
2.你在MQL中强调了一个200个字符的行。然后你复制了164个字符到里面。之后,在MQL中看一下字符串的大小。它仍然是200。
长度,而不是尺寸!长度为字符,大小为字节。
检查了,在得到一个164个字符的字符串后,是的,长度仍然是200。
对此有什么想法吗?
所以为了使它正确,我放弃了memcpy,而使用wcscpy或wcsncpy。
结果,上面的帖子。
我的意思是sizeof( wchar_t* )。
第3.3节
你最好不要和我争论,而是更仔细地阅读这篇文章。并弄清楚那里发生了什么事。
那么你就不会有任何问题了。
你想做的事其实没有那么复杂。
长度,而不是尺寸!长度为字符,大小为字节。
检查了,在得到一个164个字符的字符串后,是的,长度仍然是200。
对此有什么想法吗?
为什么会出现这种情况,上面已经解释过了。
你想做的事其实并不难。
所以告诉我,如果这不是那么困难。
还是你认为这是正常的行为?
所以告诉我,如果这不是那么困难。
还是你认为这是正常的行为?
所以你根本不打算了解什么,只是给你一个现成的食谱,就这样?
我不明白如果编程对你来说是一种负担,你为什么要做编程,但这取决于你。
你认为如果你问了一个问题而不想展示详细的可重复的代码,会有人愿意帮助你吗?
或者不读,或者与那些知道得更多的人争论?
因此,不会有一个现成的食谱。我将写一个从DLL中获取字符串的一般原则。如果你认为自己是个程序员,你可以自己编写代码。
1.在MQL中,你创建了ushort数组。
初始化它。
3.将数组和它的大小传递给DLL。
4.在DLL中,使用wmemcpy_s()函数将一个字符串复制到这个数组。
5.返回从DLL复制的字符串的长度。
6.在MQL中,使用ShortArrayToString()函数从阵列中创建一个字符串。
在其中一个服务器上(不是MQ),MT5变得很疯狂--它将CPU负载到100%,并密集地记录不同工具的这些信息。
图表在闪烁。这是不可能的工作。
有没有可能在本地解决这个问题,或者唯一的出路是等待服务器完成一些游戏?
所以你根本不打算了解什么,只是给你一个现成的食谱,就这样?
我不明白如果编程对你来说是一种负担,你为什么要做编程,但这取决于你。
你认为如果你问了一个问题而不想展示详细的可重复的代码,会有人愿意帮助你吗?
或者不读,或者与那些知道得更多的人争论?
因此,不会有一个现成的食谱。我将写一个从DLL中获取字符串的一般原则。如果你认为自己是个程序员,你可以自己编写代码。
1.在MQL中,你创建了ushort数组。
初始化它。
3.将数组和它的大小传递给DLL。
4.在DLL中,使用wmemcpy_s()函数将一个字符串复制到这个数组。
5.返回从DLL复制的字符串的长度。
6.在MQL中,使用ShortArrayToString()从阵列中创建一个字符串。
你认为这里有什么论据?这是一个工作上的讨论,没有必要把意思扭曲成一个鸡窝,带着傲慢的悲情。
你并没有要求任何现成的东西。我以为你和指针有一个解决方案,但你没有。
是你没有读过这个主题,这里已经讨论数组很长时间了,大家都很清楚。
而我很久以来一直倾向于数组。但既然mql有字符串,为什么不直接使用它呢?
我们在这里讨论的正是mql的字符串中的这个错误,即把一个指针复制到其中。
我再告诉你,并不是只有通过ushort才能解决一切问题。数组有很多选择。
但在我的情况下,我不想使用数组,因为代码结构并不总是合理的。
更何况我有mql的字符串,我可以直接使用,但它必须正常工作。