Errores, fallos, preguntas - página 1327

 

En ## no se puede utilizar el primer dígito

#define  MACRO( x, y )   x##y
void OnStart()
{
        int i = MACRO( 1, 5 );
        Print( i );
}
 

No se puede omitir el parámetro de la macro en una determinada combinación

#define  MACRO1( x )             void x() { Print( __FUNCTION__ ); }
#define  MACRO2( prefix, function )      MACRO1( prefix##function )
#define  MACRO3(         function )      MACRO2(         h2, function )
#define  MACRO4(         function )      MACRO2( /*опущен*/, function )
//---
   void f1() { Print( __FUNCTION__ ); }
MACRO3( f2 )          //нормально
 MACRO4( f2 )          //Ошибка: argument expected for the function-like macro
//---
void OnStart()
{
        MACRO( /*опущен*/, f1 ); //нормально
        h2f2();
        f2();                   
}
 
Karputov Vladimir:
No. El archivo no se modificó con respecto a la entrega estándar y no se utilizó MQL5 Storage. Probablemente, el usuario entró en una "Carpeta de datos" diferente, al menos esa es la versión más viable hasta el momento.
Busqué en el ordenador. El archivo está muerto después de todo (( El SO utilizado es Windows Server 2012. El archivo se fijó en la carpeta "C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (última fecha - marzo 2015). No sé cómo sucedió que se sobrescribió con un archivo con el mismo nombre, pero de la carpeta "C:\Program Files\MetaTrader 5\MQL5\Scripts" (última fecha de modificación - agosto de 2014). El archivo fuente con extensión mq5 ha sido reescrito, mientras que el archivo compilado se ha mantenido en la última versión. No he utilizadoMQL5 Storage, ahora lo haré.
 
kogriv:
Busqué en el ordenador. El archivo está muerto después de todo (( El SO utilizado es Windows Server 2012. El archivo se encontraba en la carpeta "C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (última fecha - marzo 2015). No sé cómo sucedió que se sobrescribió con un archivo con el mismo nombre, pero de la carpeta "C:\Program Files\MetaTrader 5\MQL5\Scripts" (última fecha de modificación - agosto de 2014). El archivo fuente con extensión mq5 ha sido reescrito, el archivo compilado se ha mantenido en la última versión. No he utilizadoMQL5 Storage, ahora lo haré.
¡No debería haber sus archivos (de usuario) en la carpeta C:\NArchivos de Programa\NMetaTrader 5\MQL5\Scripts! Si un archivo ha aparecido allí, es sólo debido a la intervención manual en el trabajo del MetaEditor. Todo el trabajo con la edición y la creación de archivos debe tener lugar en la carpeta de datos C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
¡En la carpeta C:\NArchivos de Programa\NMetaTrader 5\MQL5\Scripts sus archivos (de usuario) no deben existir! Si un archivo aparece allí, es sólo debido a la intervención manual en el trabajo del MetaEditor. Todo el trabajo con la edición y la creación de archivos debe ser colocado en la carpeta de datos C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
Lo copié en el primer lugar (C:\NArchivos de Programa\NMetaTrader 5\MQL5\NScripts), porque no conocía las características especiales de la ubicación de los archivos en el servidor, y luego lo copié en la carpeta correcta. No creo que sea una "interferencia con el trabajo...".
 
kogriv:
¿Por qué no? Lo copié allí al principio (C:\Program Files\MetaTrader 5\MQL5\Scripts), porque no sabía de las peculiaridades de la ubicación de los archivos en el servidor, luego me di cuenta y lo copié a la carpeta correcta. No creo que sea una "manipulación"...
Exactamente, la intervención manual. Tienes que mover todos tus archivos desde C:\Program Files\MetaTrader 5\MQL5\... (cortar y pegar) a su lugar correcto: C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
Exactamente, la intervención manual. Todos sus archivos de C:\Program Files\MetaTrader 5\MQL5\... deben ser movidos (cortar y pegar) a su lugar correcto: C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
¿Y si no lo has recortado?
 
kogriv:
¿Y si no la cortaste? Pero la pusiste...
En ese caso, tu situación de sobreescritura está a punto de repetirse. El usuario tiene una carpeta de datos - C:\NUsers\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Si quieres escribir archivos en otras carpetas, hazlo bajo tu propia responsabilidad. Al fin y al cabo, es su dinero.
 
Karputov Vladimir:
En ese caso, su situación de sobreescritura está a punto de repetirse. El usuario tiene una carpeta de datos - C:\NUsers\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Si quieres escribir archivos en otras carpetas, hazlo bajo tu propia responsabilidad. Al fin y al cabo, es su dinero.

¿qué pasa con la tecla /portable?

y por cierto, ¿qué son estas carpetas "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Si hay varios terminales instalados, no es una tarea fácil determinar qué carpeta pertenece a cada terminal. Por supuesto, puedes introducirlos utilizando las herramientas de MT, pero en el resto de los casos es un dolor de cabeza, así que /portable es nuestra elección.

 
Andrey Dik:

¿qué pasa con la tecla /portable?

y por cierto, ¿qué son estas carpetas "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Si hay varios terminales instalados, no es una tarea fácil determinar qué carpeta pertenece a cada terminal. Por supuesto, es posible introducirlos utilizando herramientas de MT, pero en todos los demás casos es un auténtico suplicio.

El usuario ya ha experimentado una vez y ha conseguido que se sobrescriban los archivos. Creo que la segunda vez no se quemará.
Razón de la queja: