Errores, fallos, preguntas - página 2895

 
A100:
Un error de compilación:

solía funcionar, pero a principios de año rompieron los punteros de las funciones, parece que tu código debería seguir funcionando en MT4

funcionará:

typedef void (*fn)();
void f() {}
fn g() { return f; }
void OnStart()
{
    fn func = g();
    func();
}

es decir, ahora tienes que usar una variable temporal ( ahora ni siquiera puedes usar un array de punteros!!!! )

A100:

Aquí hay cierta contradicción porque

¿Cuál es ladiferencia de principio?

Uno de los administradores escribió hace tiempo cómo se hace el análisis sintáctico, primero las variables estáticas, luego las descritas globalmente, luego el cuerpo de la función, analizando de arriba a abajo en el texto

... pero eso no es exacto ;)

 
Igor Makanu:

es decir, ahora tienes que usar una variable temporal ( ahora ni siquiera puedes usar el puntero array!!!! )

Por eso lo escribí, para que los desarrolladores pudieran prescindir del temporal

 
A100:

Por eso escribí, para que de ser posible, los Desarrolladores pudieran hacerlo sin el temporal

@fxsaber escribió en cuanto lo encontraron, probablemente ha pasado un año, bueno, tal vez te escuchen
 
Igor Makanu:

es decir, ahora tienes que usar una variable temporal ( ahora ni siquiera puedes usar el puntero array!!!! )

¿Tiene algún ejemplo que demuestre que no se puede?

 
A100:

¿Tiene algún ejemplo que demuestre que no se puede?

escribió un ejemplo:

typedef void (*fn)();
void f() {}
fn g() { return f; }
void OnStart()
{
//   fn ptr[10];                                                 //possible use of uninitialized variable 'ptr'
   fn ptr[10] = {0};                                             // OK
   for(int i = ArraySize(ptr) - 1; i >= 0; i--) ptr[i] = g();
   
//   for(int i = ArraySize(ptr) - 1; i >= 0; i--) ptr[i]();     //')' - expression expected
   
   for(int i = ArraySize(ptr) - 1; i >= 0; i--)                  // OK
   {
      fn func = ptr[i];
      func();
   }
}

Me sorprendió, por alguna razón genera un aviso fn ptr[10]; //posible uso de la variable no inicializada 'ptr'

ahora tengo que averiguar cómo inicializar los punteros a las funciones


solía ser posible en MQL5: ptr[i]();
 
Igor Makanu:

Podrías usar en MQL5: ptr[i]() antes;

Sí... Recuerdo que

Foro sobre trading, sistemas de trading automatizados y comprobación de estrategias

Bichos, errores, preguntas

A100, 2020.07.23 02:40

Error durante la compilación

typedef void (*fn)();
void OnStart()
{
        fn ff[ 1 ];
        ff[ 0 ](); //Error:: ')' - expression expected
} 

Tuve un error en la compilación del año pasado, todo compiló y funcionó bien.

Foro de trading, sistemas de trading automatizados y prueba de estrategias

Bichos, errores, preguntas

A100, 2020.07.23 16:31

He sacado la compilación 2085x32 del stock antiguo - todo compila bien - puedes probarlo tú mismo

 
Es un error de compilación:
class EventChartCustom {
      EventChartCustom() {}
};
bool f()
{
    return (EventChartCustom( 0, 0, 0, 0, NULL ) ? true : false); //(1) Error: 'EventChartCustom' - wrong parameters count
}
pero esto está bien:
bool f()
{
    if (    EventChartCustom( 0, 0, 0, 0, NULL ) ) //(2) нормально
        return (true);
    else
        return (false);
}

¿Cuál es la diferencia fundamental?

 
Un error de compilación:
class A {
      A() {}
};
void A() {} //(1) Error: 'A' - identifier already used
pero está bien:
void A() {} //(2) нормально
class A {
      A() {}
};

¿Cuál es la diferencia fundamental?

 
Regla del mercado.
В Продуктах запрещен вызов любых DLL-библиотек, включая системные библиотеки Microsoft Windows.
¿Tiene el producto Market derecho a ampliar su funcionalidad si el usuario puede utilizar la DLL?
 

No pude encontrar ninguna estadística en el Mercado. Así que una pregunta para los vendedores de productos multiplataforma.

¿Se venden realmente las versiones de MT5 mejor que las de MT4?