Discusión sobre el artículo "Solución sin DLL para la comunicación entre terminales MetaTrader 5 mediante canalizaciones con nombre" - página 3

 
Teniendo en cuenta que mql4/5 carece de la posibilidad de multithreading, hacer un servidor en mql4/5 es como ver una tele de tubo (parece que funciona, pero la sensación no es la misma. Por eso es mejor escribir un servidor aparte y usarlo para transferir datos entre programas mql.
 
Hola, ¿todavía funciona este producto? Si no es así, ¿puede ser actualizado para trabajar bajo la última MT5 construir? En este momento está lanzando una 'Violación de Acceso'.
 

También me encontré con errores de violación de acceso al llamar a los métodos writeTick, readTick ... y así sucesivamente. Encuentre el archivo CNamedPipes arreglado adjunto.

También agregué el método WriteDouble a la claseCNamedPipe :

#import "kernel32.dll"
...
int WriteFile(ulong fileHandle,double &var,int bytes,int &numOfBytes,ulong overlapped);
...
#import

...

bool CNamedPipe::WriteDouble(double data)
  {
   int data_size = sizeof(data);
//--- comprobar parámetros
   if(!data || data_size<1) return(false);

//--- enviar datos
   int written;
   if(!WriteFile(hPipe,data,data_size,written,NULL) || written!=data_size)
      return(false);
//--- ok
   return(true);
  }


Nota al margen: Para leer / escribir en el lado del cliente (por ejemplo, desde otro Metatrader Terminal ), acabo de utilizar el estándar MQL5 FilePipe Biblioteca. Ejemplos de como usarlos pueden ser descargados aquí:


https://www.mql5.com/es/articles/503

Communicating With MetaTrader 5 Using Named Pipes Without Using DLLs
Communicating With MetaTrader 5 Using Named Pipes Without Using DLLs
  • www.mql5.com
Many developers face the same problem - how to get to the trading terminal sandbox without using unsafe DLLs. One of the easiest and safest method is to use standard Named Pipes that work as normal file operations. They allow you to organize interprocessor client-server communication between programs. Take a look at practical examples in C++ and MQL5 that include server, client, data exchange between them and performance benchmark.
Archivos adjuntos:
 
fantástico trabajo
 
Ha pasado un tiempo desde que hubo una actualización aquí ... Estoy viendo "Violación de acceso" error cuando adjunto el indicador al gráfico. Supongo que no hay manera de hacer que esto funcione.