Discussion de l'article "Communiquer avec MetaTrader 5 en utilisant Named Pipes sans utiliser de DLL" - page 2

Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
................
D'une part, nous nous sommes débarrassés de la dll, mais d'autre part, des béquilles dans d'autres langages de programmation sont à nouveau nécessaires pour l'application.
L'inconvénient de la méthode proposée est qu'elle ne convient qu'aux programmeurs qui développent des applications dans des langages autres que MQL. ...................
Vous devriez au moins lire le titre de ce sujet pour l'intérêt qu'il suscite
Ce n'est plus le cas. Voir https://www.mql5.com/ru/forum/7806/page3.
Notez simplement qu'il s'agit d'un support client et que les connexions serveur ne peuvent pas être créées dans le terminal.
Ce n'est plus le cas aujourd'hui. Voir https://www.mql5.com/ru/forum/7806/page3.
Je ferai profil bas. Ne le dites à personne. Shhhhh.....
Oh, vous. Les développeurs ont travaillé si dur, ils ont établi des contacts avec les clients, ils ont écrit l'article.
Et vous quoi ? Au lieu de tout abandonner, d'apprendre le langage C et d'utiliser tout cela ouvertement et honnêtement, vous êtes tranquillement et dans les profondeurs de la clandestinité en train de chasser les connecteurs à travers les dlls.
Peu importe combien (ne pointons pas du doigt) vous le nourrissez, il veut toujours utiliser la dll dans le terminal.
Les héros normaux font toujours un détour © N. Korostylev
Rédigez votre passerelle en MQL5 en vous basant sur les exemples de l'article susmentionné. Et vous pouvez écrire des scripts clients en MQL pur.
Cependant, je ne comprends pas pourquoi vous faites une solution aussi unilatérale. Ceux qui écriront leur propre serveur en C, ce n'est pas un problème de connecter la dll, mais le reste des fonctionnalités actuelles ne sera pas suffisant. A moins que la dll ne ralentisse considérablement le travail (ce dont je doute).
Il s'agit de pouvoir se connecter depuis le terminal à des systèmes tiers sans utiliser de DLL. La tâche est accomplie - il existe désormais un moyen simple de se connecter et d'échanger des données en duplex intégral.
La plainte selon laquelle il est désormais nécessaire d'écrire une application tierce est déplacée.
Veuillez prêter attention au sujet et à l'essentiel de l'article.
Il s'agit de pouvoir se connecter depuis le terminal à des systèmes tiers sans utiliser de DLL. La tâche est accomplie - il existe désormais un moyen simple de se connecter et d'échanger des données en duplex intégral.
La plainte selon laquelle il faut écrire une application tierce est déplacée.
Veuillez prêter attention au sujet et à l'essentiel de l'article.
Il s'agit de pouvoir se connecter depuis le terminal à des systèmes tiers sans utiliser de DLL. La tâche est accomplie - il existe désormais un moyen simple de se connecter et d'échanger des données en duplex intégral.
La plainte selon laquelle vous devez écrire une application tierce est déplacée.
En fait, c'est vrai, car il n'est pas déclaré que par des méthodes standard, c'est-à-dire sans béquilles tierces, la communication sera assurée, par exemple, entre les applications MQL.
"De nombreux développeurs sont confrontés au même problème : comment pénétrer dans le bac à sable du terminal de négociation sans utiliser de DLL dangereuses ?
Il n'y a pas de revendications ici et il ne devrait pas y en avoir.
Mais d'un autre côté, la tâche la plus demandée dans le plan d'application, à savoir assurer la communication entre les applications écrites en MQL, est très efficacement résolue par l'utilisation de DLL non sûres dans les exemples de cet article. Puisque dans cet article, pour mettre en œuvre la communication via des messages de type chaîne, il suffit d'avoir une connaissance et une expérience de la programmation en MQL5 (le reste du travail, c'est-à-dire les béquilles tierces via l'API Windows, l'auteur de l'article l'a déjà fait et l'a posté en tant que classe prête à l'emploi).
Mais la communication avec les systèmes externes est plus importante et plus applicable. C'est pour cela que le canal sécurisé a été ouvert.
Et notez que toute la mise en œuvre se fait dans le cadre des opérations de fichiers standard. Aucune nouvelle fonction n'a dû être introduite.
Ecrivez votre propre passerelle en MQL5 en vous basant sur les exemples de l'article ci-dessus.
Théoriquement, c'est possible, mais en pratique, ce sera une béquille, voire un simplex.
J'ai trouvé quelques informations sur la façon de créer des passerelles avec des coûts minimaux. Il s'avère que C++ possède une classe de flux NamedPipeServerStream(String)
Si vous l'appelez, elle créera un canal nommé. Nous pouvons ensuite attendre une connexion en appelant la méthode IsConnected et créer un second canal nommé. Nous attendons qu'un autre client se connecte au second canal et redirigeons les informations du premier flux vers le second à l'aide de la méthode CopyToAsync(Stream). Ensuite, nous devons lancer un sous-processus et, toujours à l'aide de la méthode CopyToAsync(Stream), rediriger les informations du second flux vers le premier. De cette manière, les deux canaux nommés seront liés en duplex.
Cela semble facile, mais je n'ai aucune expérience du C++. S'il s'agissait de Java, cela prendrait une demi-heure avec le débogage.
Jusqu'à présent, j'ai trouvé un exemple approprié pour la refonte : http://msdn.microsoft.com/en-us/library/bb546085.aspx. J'essaierai de construire une passerelle full-duplex sur cette base lorsque j'en aurai le loisir. Et si cela fonctionne ?