Discussion de l'article "Une solution sans DLL pour communiquer entre les terminaux MetaTrader 5 à l'aide de Canaux Nommés" - page 3

 
Compte tenu du fait que mql4/5 n'a pas la possibilité de faire du multithreading, faire un serveur sur mql4/5 est comme regarder une télévision à tube (cela semble fonctionner, mais la sensation n'est pas la même). C'est pourquoi il est préférable d'écrire un serveur séparé et de l'utiliser pour transférer des données entre les programmes mql.
 
Bonjour, est-ce que ce produit fonctionne toujours ? Si ce n'est pas le cas, est-il possible de le mettre à jour pour qu'il fonctionne avec la dernière version de MT5 ? Pour l'instant, il génère une 'Violation d'accès'
 

J'ai également rencontré des erreurs de violation d'accès lors de l'appel des méthodes writeTick, readTick... et ainsi de suite. Vous trouverez ci-joint le fichier CNamedPipes corrigé.

J'ai également ajouté la méthode WriteDouble à la classeCNamedPipe :

#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);
//--- vérifier les paramètres
   if(!data || data_size<1) return(false);

//--- envoyer des données
   int written;
   if(!WriteFile(hPipe,data,data_size,written,NULL) || written!=data_size)
      return(false);
//--- ok
   return(true);
  }


Note secondaire : Pour lire/écrire du côté client (par exemple à partir d'un autre terminal Metatrader), j'ai simplement utilisé la bibliothèque standard MQL5 FilePipe. Des exemples d'utilisation peuvent être téléchargés ici :


https://www.mql5.com/fr/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.
Dossiers :
 
un travail fantastique
 
Cela fait un moment qu'il n'y a pas eu de mise à jour ici... Je vois une erreur "Access Violation" lorsque j'attache l'indicateur au graphique. Je suppose qu'il n'y a aucun moyen de faire fonctionner cet indicateur.