Pasar un array bidimensional de MQL4 a dll - página 3

 
TheXpert:
No hay matrices multidimensionales en MQL4. Lo principal es calcular correctamente el tamaño y transmitirlo.

int ArrayResize( object&array[], int new_size)
Establece el nuevo tamaño en la primera dimensión del array. Si se ejecuta con éxito, la función devuelve el número de todos los elementos contenidos en el array después de redimensionar, de lo contrario devuelve -1 y el array no se redimensiona.
Nota: un array declarado localmente en cualquier función que haya sido redimensionado permanecerá sin cambios al finalizar la función. Cuando se llame de nuevo a la función, dicho array tendrá un tamaño diferente al declarado.
Parámetros:
array[] - Matriz para redimensionar.
nuevo_tamaño - Nuevo tamaño para la primera dimensión.
Ejemplo:
double array1[][4]; int element_count=ArrayResize(array1, 20); // nuevo tamaño - 80 elementos


Esta es una cita de la ayuda y una respuesta simultánea al autor del post sobre que todos los arrays en MQL son unidimensionales.

 
Debugger:

Esta es una cita de la ayuda y una respuesta simultánea al autor del post que todos los arrays en MQL son unidimensionales.

Se trata de una función sobre un array unidimensional. Intenta demostrar lo contrario.
 
¿Por qué reinventar la rueda y tratar de parecer más inteligente que los desarrolladores de C++?
 
Debugger:
¿Por qué reinventar la rueda y tratar de parecer más inteligente que los desarrolladores de C++?

Lo que pensamos y lo que hay en realidad son cosas O-O-O a menudo DIFERENTES, ¡y más cuando intentamos pensar por los demás!

¿De verdad crees que Vadim no tiene nada mejor que hacer que "parecer más listo que los desarrolladores"? ¡¿Conoces tan bien al hombre para fantasear así?! Me daría miedo vivir en un mundo tan distorsionado... :)))

Y si una persona cambia/modifica/rediseña algo que fue creado anteriormente por otra persona, ¡está en su derecho! Es NORMAL cambiar el mundo por uno mismo aunque vaya en contra de lo aceptado de "plegarse al mundo cambiante"... ;)

 

Me pregunto dónde está esa "bicicleta". :-))

Antes de escribir, he escarbado en todo. Ni siquiera en Boost. Por no hablar de C++, que no tiene nada que ver, y tampoco existe en STL.

Por cierto, no existe una solución completa para este problema. No entraré en detalles, pero las capacidades de C++ son insuficientes para resolver este problema.

He consultado sobre Windgrad. Hay algunos buenos programadores allí. En cuanto aprendieron la tarea, predijeron inmediatamente algunos problemas específicos. Por supuesto, resolví casi todos ellos. Quedaban otros irresolubles, en principio. Se trata de problemas relacionados con el manejo del contenido de los arrays mediante los operadores de indexación "[]". Nadie en Internet sabe cómo hacerlo. He hecho una muleta. Ahora podemos trabajar casi completamente con los operadores "[]", pero tenemos que suministrar un determinado tipo de índice a la última dimensión (lo cual podemos olvidar fácilmente y el compilador no nos avisa). Entonces funciona como un array multidimensional habitual con indexación a través de []. Es decir, el operador se sobrecarga 4 veces con un tipo de índice diferente. Una sobrecarga devuelve el contenido de la celda por el último cálculo del índice lineal por los operadores [] anteriores. El resto de las sobrecargas devuelven un objeto para poder utilizar de nuevo el operador []. En algunos casos se activa un operador de reparto de tipos que devuelve el contenido de la última celda a la que se ha accedido. En algunos casos esto no funciona. Puede haber algunos problemas de los que sólo se enterará cuando el programa no funcione correctamente. En algunos casos el compilador ayuda. En otros, son las excepciones que se ponen para posibles errores del usuario. He tratado de prever todos los casos.

Los principales problemas son estos:

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

Existe el método at(). Sustituye total y completamente a los operadores "[]".

La clase está protegida por la sección crítica para trabajar en aplicaciones multihilo.

 
Zhunko:

No, está más allá de mí, no puedo leerlo en silencio.

Eres un ciclista nuboso. La implementación más sencilla se publicó no hace mucho en mql5 (!) con un tamaño de línea de 100 líneas.

 
TheXpert:

No, está más allá de mí, no puedo leerlo en silencio.

Eres un ciclista nuboso. La implementación más sencilla se publicó no hace mucho en mql5 (!) con un tamaño de línea de 100 líneas.

Es una basura lo que hay ahí fuera.
 
Zhunko:
Eso es una mierda.

Oh, sí, sin tonterías sólo del gran gurú Vadim, arrodíllate ante su semblante.

Ugh... Los que no tienen éxito tienen el ego más grande. Han aprendido a usar el msdn y la ayuda, han escrito más de 1000 líneas de texto y ya está, soy una estrella. Escuché en algún lugar la palabra singleton y XP, eso es todo, conozco los patrones de programación y los métodos. Soy un maldito diseñador...

Deberías avergonzarte, no eres un niño.

 
¡Vadim! ¿Te interesa perder el tiempo en ESTE nivel de argumentación ("tú mismo eres un tonto")de gente "autodestructiva"?
 
TheXpert:

Oh, sí, sin tonterías sólo del gran gurú Vadim, arrodíllate ante su semblante.

Ugh... Los que no tienen éxito tienen el ego más grande. Han aprendido a usar el msdn y la ayuda, han escrito más de 1000 líneas de texto y ya está, soy una estrella. Escuché en algún lugar la palabra singleton y XP, eso es todo, conozco los patrones de programación y los métodos. Soy un maldito diseñador...

Deberías avergonzarte, no eres un niño.


Andrew, ¿por qué no me has mostrado lo superprogramador que eres? El primer paso es explicar cómo ha resuelto el problema. Escribí cómo lo resolví. Ahora dímelo tú. Entonces, analizaremos juntos sus conceptos erróneos.

Una vez más, no soy programador. Soy mejor que eso.

===========

Por cierto, no tengo proyectos de menos de 1000 líneas. Por lo general, docenas de veces más. Esta clase (base) tiene 5110 líneas + 2 2500 líneas cada una de las clases heredadas de ella. Eso sin contar una docena de similares utilizados en el proyecto.