Errores, fallos, preguntas - página 1205

 
ozhiganov:

Todos los terminales de los corredores han dejado de funcionar, incluido el que descargué de este sitio...

Reiniciar no sirve de nada, reiniciar y reinstalar también, antes todo funcionaba bien, no instalé nada en el ordenador, tampoco instalé nada en el terminal. sólo compras en el mercado.

Desmonta los indicadores y EAs en funcionamiento pieza por pieza para ver cuál es el problema.

Haga clic en "Detalles" en la ventana de descripción del error para conocer los detalles. Copie el texto completo aquí, por favor.

 

vacío, sin un solo indicador y terminal EA, lo mismo...

 
Renat:

Capture los indicadores y EAs en funcionamiento uno por uno para ver cuál es el problema.

Haga clic en el botón "Detalles" en la ventana de descripción del error para obtener detalles. Copie el texto completo aquí, por favor.

¿Supongo que lo quieres?

crash --> 000007FCE8441F4F 48396B10 cmp [rbx+0x10], rbp

000007FCE8441F53 7530 jnz 0x7fce8441f85


000007FCE8441F55 488B03 mov rax, [rbx]

000007FCE8441F58 4C8BCF mov r9, rdi

000007FCE8441F5B 4D8BC7 mov r8, r15

000007FCE8441F5E 8BD6 mov edx, esi

000007FCE8441F60 488BCB mov rcx, rbx


: #021 00000000000011C8 EIP: 0000000000000000 ESP: 00000000000000000000


: #022 0000000000001068 EIP: 000007FCF54245DB ESP: 0000006818CFFAC8

000007FCF54245D1:00000A [000007FCF54245DB] NtYieldExecution (ntdll.dll)

000007FCF5426E50:000833 [000007FCF5427683] RtlUnicodeStringToInteger (ntdll.dll)

000007FCF3681828:00001A [000007FCF3681842] BaseThreadInitThunk(kernel32.dll)

000007FCF54774E8:000021 [000007FCF5477509] RtlVerifyVersionInfo (ntdll.dll)


: #023 000000000000111C EIP: 000007FCF54245DB ESP: 0000006818E5FB18

000007FCF54245D1:00000A [000007FCF54245DB] NtYieldExecution (ntdll.dll)

000007FCF5426E50:000833 [000007FCF5427683] RtlUnicodeStringToInteger (ntdll.dll)

000007FCF3681828:00001A [000007FCF3681842] BaseThreadInitThunk (kernel32.dll)

000007FCF54774E8:000021 [000007FCF5477509] RtlVerifyVersionInfo (ntdll.dll)

 
He enviado el texto completo en un mensaje privado
 

Al analizar el ejemplo anterior, descubrimos una diferencia crucial entre MQL y C++

class A {};
class B : public A {};
class C {
public:
        virtual int g( A* a ) { return ( 1 ); }
        virtual int g( B* b ) { return ( 2 ); } //здесь полное совпадение
};
class D : public C {
public:
        virtual int g( A* a ) { return ( 3 ); }
};
void OnStart()
{
        B* b = new B;
        D* d = new D;
        Print( d.g( b ));
}

En MQL(build 978) el resultado es: 2 (se llama a C::g), y en C++ el resultado es: 3 (se llama a D::g)

Así que resulta que MQL da prioridad a una coincidencia de tipo exacta del argumento, incluso si está en una clase base, mientras que C++ da prioridad a la clase más cercana posible que puede no tener una coincidencia de tipo exacta pero puede tener una conversión de tipo implícita.

Por favor, compruebe los resultados en compiladores C++ recientes y, si se confirma la diferencia, decídase preferentemente por C++ a efectos de unificación.

 
ozhiganov:
He enviado el texto completo en un mensaje privado.
Gracias, lo investigaremos.
 

¿Están previstos el constructor de copia y el operador de asignación en el futuro?

La clase base A tiene 15 campos, tiene dos descendientes B y C - cada uno tiene +5 campos más.

Y el resto es una búsqueda de 20 minutos.

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

A100, 2014.08.29 16:28

Error al imprimir mediante Print(...)

void OnStart()
{
        const int n = 300;
        Print( "n=", n );
        for ( int i = 0; i < n; i++ )
        {
                Print( i );
                if ( i == 0 )
                        Sleep( 2000 );
        }
}

al imprimir, la primera parte de la salida salta del 1 al 53 (cada vez una parte diferente - no hay un patrón claro), a veces salta en el medio

luego imprime hasta 299 sin saltos

Si tienes algo de tiempo, por favor, intenta ejecutarlo y si hay algún salto en la salida, escríbeme. Si no hay saltos - intente aumentar n (yo empecé a saltar con n >= 300) y/o elimine

        if ( i == 0 )
                Sleep( 2000 );

A petición #1060016 | 2014.08.29 16:30https://www.mql5.com/ru/users/A100/servicedesk/closed/14774

Ha surgido una pregunta: "¿Cómo informo de un salto de impresión?". - La opción más sencilla es una sola línea con una línea de puntos en lugar de las líneas salteadas

Cuando el usuario ve esta línea, entiende que hay omisiones y necesita referirse al archivo .log (los números de línea no son necesarios - sólo como ejemplo)
 
A100:

Al analizar el ejemplo anterior, descubrimos una diferencia crucial entre MQL y C++

En MQL(build 978) el resultado es: 2 (se llama a C::g), y en C++ el resultado es: 3 (se llama a D::g)

Así que resulta que MQL da prioridad a una coincidencia de tipo exacta del argumento, incluso si está en una clase base, mientras que C++ da prioridad a la clase más cercana posible que puede no tener una coincidencia de tipo exacta pero puede tener una conversión de tipo implícita.

Por favor, compruebe los resultados en compiladores C++ recientes y, si se confirma la diferencia, decídase preferentemente por C++ a efectos de unificación.

Así es. Se da prioridad a la coincidencia exacta. Y es realmente correcto.

¿Por qué necesitamos esa unificación? Unificación de la tramitación de los programas mal diseñados

 
ALXIMIKS:

¿Están previstos el constructor de copia y el operador de asignación en el futuro?

La clase base A tiene 15 campos, tiene dos descendientes B y C - cada uno tiene +5 campos más.

Y el resto es una búsqueda de 20 minutos.

Sí, lo haremos, pero en un futuro próximo no está en los planes.