从MQL4到dll传递一个二维数组 - 页 3

 
TheXpert:
在MQL4中没有多维数组。把它作为一个一维的来传输。主要是正确计算大小并传输。

intArrayResize( object&array[], int new_size)
设置数组第一维的新尺寸。如果成功执行,该函数返回调整大小后数组中包含的所有元素的数量,否则返回-1,数组不调整大小。
注意:在任何函数中局部声明的数组,如果被调整过大小,在函数完成后将保持不变。当函数被 再次调用 时,这样的数组将与声明的数组大小不同。
参数。
阵列[] - 用于调整大小的阵列。
新尺寸 - 第一个维度的新尺寸。
例子。
double array1[][4]; int element_count=ArrayResize(array1, 20); // 新大小--80个元素


这是帮助中的一句话,同时也是对帖子作者关于MQL中所有数组都是一维的回应。

 
Debugger:

这是帮助中的一句话,同时也是对帖子作者的回答,MQL中的所有数组都是一维的。

这是在一维数组之上的一个函数。试图证明这一点。
 
为什么要重新发明轮子并试图显得比C++开发人员更聪明?
 
Debugger:
为什么要重新发明轮子并试图显得比C++开发人员更聪明?

我们所想的和实际存在的往往是截然不同的事情,当我们试图为他人着想时更是如此。

你真的认为瓦迪姆除了 "看起来比开发者更聪明 "之外,没有别的事情可做吗?你这么了解这个人,还能这样幻想吗?我很害怕生活在一个被扭曲到这种程度的世界里......。:)))

如果一个人改变/修改/重新设计早先由别人创造的东西--那是他的权利!如果一个人改变/修改/重新设计,那是他的权利。为自己改变世界是正常的,尽管这违背了公认的 "适应不断变化的世界"......。;)

 

我想知道这样的 "自行车 "在哪里?:-))

在写作之前,我把所有东西都挖了一遍。甚至在Boost中也没有。更不用说C++了,这和它没有关系,STL中也没有这样的东西。

顺便说一下,这个问题没有完整的解决方案。我就不多说了,但C++的能力不足以解决这个问题。

我咨询了Windgrad的情况。那里有一些好的程序员。他们一了解到这个任务,就立即预测到一些具体问题。当然,我几乎解决了所有的问题。原则上,仍有无法解决的问题。这些都是与通过索引操作符"[]"处理数组内容有关的问题。互联网上没有人知道如何做。我已经做了一个拐杖。现在我们几乎可以完全使用"[]"运算符,但我们必须为最后一个维度提供一定的索引类型(我们很容易忘记这样做,而且编译器也不会警告我们)。然后它就像一个通常的多维数组 一样工作,通过[]进行索引。也就是说,该运算符被重载了4次,且索引类型不同。一个重载是通过之前的[]运算符的最后一次线性索引计算返回单元格内容。其他重载会返回一个对象,这样就可以再次使用[]操作符。在某些情况下,会触发一个类型转换操作,返回最后访问的单元格的内容。在某些情况下,这并不奏效。可能有一些问题,只有当程序不能正常工作时,你才会知道。在某些情况下,编译器会有所帮助。在其他方面,它是为可能的用户错误而设置的例外。我已经努力为所有的情况提供服务。

主要的问题是这些。

a[0][1][2] = a[0][1][3] + a[0][5][2] / a[0][8][12]; // Здесь на всякий случай надо в последнем измерении использовать тип _SIZE_T. Для логических операций тоже надо.

有一个at()方法。它完全彻底地取代了运算符"[]"。

该类受到关键部分的保护,可以在多线程的应用程序中工作。

 
Zhunko:

不,这超出了我的能力范围,我不能默默地读它。

你是一个小规模的自行车爱好者。最简单的实现是不久前在mql5中发布的(!),行数是100行。

 
TheXpert:

不,这超出了我的能力范围,我不能默默地读它。

你是一个小规模的自行车爱好者。最简单的实现是不久前在mql5中发布的(!),行数是100行。

外面是垃圾。
 
Zhunko:
那是胡说八道。

哦,是的,没有废话,只有伟大的大师瓦迪姆,跪在他的面孔前。

呃...成绩不好的人有最大的自负。他们学会了使用msdn和帮助,他们写了超过1000行的文字,就这样,我是一个明星。我在某个地方听到了单子和XP这个词,就是这样,我知道编程模式和方法。我是一个 他妈的设计师...

你应该为自己感到羞耻,你不是一个男孩。

 
瓦迪姆!你有兴趣在这种("你自己是个傻瓜")级别的"自取灭亡 "的人 的论证上浪费时间吗?
 
TheXpert:

哦,是的,没有废话,只有伟大的大师瓦迪姆,跪在他的面孔前。

呃...成绩不好的人有最大的自负。他们学会了使用msdn和帮助,他们写了超过1000行的文字,就这样,我是一个明星。我在某个地方听到了单子和XP这个词,就是这样,我知道编程模式和方法。我是一个他妈的设计师...

你应该为自己感到羞耻,你不是一个男孩。


安德鲁,你为什么不向我展示一下你是怎样一个超级程序员?第一步是解释你是如何解决问题的。我写了我是如何解决的。现在你告诉我。然后我们将一起研究你的错误观念。

再说一次,我不是一个程序员。我比这更好。

===========

顺便说一下,我没有少于1000行的项目。通常是几十倍。这个类(基础)有5110行+2个2500行的继承类。这还不算项目中使用的一打类似的。