Errores, fallos, preguntas - página 1969

 
Alexey Kozitsyn:
Sí, ya veo... Entonces crearé otra aplicación.

Mi solicitud para MT5 - 2016.10.11 16:28,#1584315- aceptada para su revisión hasta ahora. ;-)

 
Stanislav Korotky:

Mi solicitud para MT5 - 2016.10.11 16:28,#1584315- aceptada para su revisión hasta ahora. ;-)

El BOD necesita escribir a la aplicación periódicamente para que respondan a ella. A veces se les escapa.
 
Alexey Kozitsyn:
Eso es lo que pensaba que estaba arreglado, pero ahora no lo está. Acabo de comprobarlo. Bild 1643.

Es la construcción 1650. Compruébalo.

 
Artyom Trishkin:

Ya está construido el 1650. Compruébalo.

Bien, acabo de nombrar la última compilación oficial.
 

Originalmente, había varios módulos. Todo funcionaba bien. Debido a ... decidió convertir temporalmente todo en uno.
Resultado: el programa empezó a funcionar de forma diferente.
He descubierto la razón:

#ifndef _WIN64 //добавлено
class A {
public:
        A() { Print( a ); } //Результат: 0 //не может быть
        static const int a; //(1)
}; 
static A *a = new A;    //(2)
const int A::a = 1;     //(3)
void OnStart() {}
#endif

No pudimos averiguar exactamente por qué apareció esta secuencia particular de líneas (normalmente la implementación/inicialización viene justo después de la declaración). Quizás fue un cruce de clases mutuo.

No sé cómo lo hace exactamente el compilador de C++, pero el Resultado: 1 (como se esperaba)
 

Error, la lectura falla.

   ulong l[] = {ULONG_MAX};
   ulong l2[1];
   {
      int file = FileOpen("ttt", FILE_WRITE|FILE_BIN);
      FileWriteArray(file, l);
   }
   {
      int file = FileOpen("ttt", FILE_READ|FILE_BIN);
      FileReadArray(file, l2);
   }
   Alert(l[0] == l2[0]);
   Alert(l[0], "   ", l2[0]);
   return;

Alert:

falso

18446744073709551615 10000000

Imagen hexadecimal del número en el archivo: FF FF FF FF FF FF FF FF

 
pavlick_:

El error, la lectura está funcionando mal.

No la lectura, sino la inicialización del array. Quitar los corchetes.

Soy lento, lo comprobaré dos veces.
 
Комбинатор:

No leer, sino inicializar el array. Quita las llaves rizadas.

Sin ellos, no se compilará en absoluto ('l' - acceso inválido a la matriz). De todos modos, el número del archivo es correcto.

 
Sospecho que la primera manija debe ser cerrada o abierta con la bandera FILE_SHARE_READ
 
Комбинатор:
Sospecho que la primera manija debe ser cerrada o abierta con la bandera FILE_SHARE_READ

Gracias por su interés. Lo hice. Cerré las asas, ahora funciona correctamente. Tengo un error en mi script, tratando de localizarlo, hasta ahora.