Discussão do artigo "Comunicando-se com o MetaTrader 5 utilizando pipes nomeados sem DLLs" - página 2
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
................
Por um lado, nos livramos da dll, mas, por outro lado, novamente são necessárias muletas em outras linguagens de programação para o aplicativo.
A desvantagem do método proposto é que ele é adequado apenas para programadores que desenvolvem aplicativos em outras linguagens que não a MQL. ...................
Você deveria pelo menos ler o título deste tópico por uma questão de interesse
Não mais. Consulte https://www.mql5.com/ru/forum/7806/page3.
Observe que esse é o suporte ao cliente, e as conexões com o servidor não podem ser criadas no terminal.
Não mais. Consulte https://www.mql5.com/ru/forum/7806/page3.
Vou me manter discreto. Não conte a ninguém. Shhhh.....
Ah, você. Os desenvolvedores trabalharam muito, fizeram contatos com clientes, escreveram o artigo.
E o que você fez? Em vez de desistir de tudo, aprender C e usar todo esse material de forma aberta e honesta, você está em silêncio e nas profundezas do subterrâneo perseguindo conectores por meio de dlls.
Não importa o quanto (não vamos apontar o dedo) você o alimente, ele ainda quer usar a dll no terminal.
Os heróis normais sempre fazem um desvio © N. Korostylev
Escreva seu gateway em MQL5 com base nos exemplos do artigo mencionado acima. E você pode escrever scripts de cliente em MQL puro.
No entanto, não entendo por que você deve criar uma solução tão unilateral. Para aqueles que escreverão seu próprio servidor em C, não há problema em conectar a dll, mas o restante da funcionalidade atual não será suficiente. A menos que a dll torne o trabalho muito mais lento (o que eu duvido).
Trata-se de poder se conectar do terminal a sistemas de terceiros sem usar DLLs. A tarefa foi concluída - agora há uma maneira fácil de conectar e trocar dados full-duplex.
A reclamação de que agora é necessário escrever um aplicativo de terceiros é descabida.
Preste atenção ao tópico e à essência do artigo.
Trata-se de poder se conectar do terminal a sistemas de terceiros sem usar DLLs. A tarefa foi concluída - agora há uma maneira fácil de conectar e trocar dados full-duplex.
A reclamação de que é necessário escrever um aplicativo de terceiros é descabida.
Preste atenção ao tópico e à essência do artigo.
Trata-se de poder se conectar do terminal a sistemas de terceiros sem usar DLLs. A tarefa foi concluída - agora há uma maneira fácil de conectar e trocar dados full-duplex.
A reclamação de que é necessário escrever um aplicativo de terceiros é descabida.
De fato, isso é verdade, pois não é declarado que, por meio de métodos padrão, ou seja, sem muletas de terceiros, a comunicação será fornecida, por exemplo, entre aplicativos MQL.
"Muitos desenvolvedores enfrentam o mesmo problema - como entrar na área restrita do terminal de negociação sem usar DLLs inseguras."
Não há reivindicações aqui e não deveria haver nenhuma.
Mas, por outro lado, a tarefa mais exigida no plano de aplicativos de fornecer comunicação entre aplicativos escritos em MQL é resolvida de forma muito eficaz com o uso de dlls inseguras nos exemplos deste artigo. Como nesse artigo, para implementar a comunicação por meio de mensagens de string, basta ter apenas conhecimento e experiência de programação em MQL5 (o restante do trabalho, ou seja, muletas de terceiros por meio da API do Windows, o autor do artigo já fez e publicou como uma classe pronta).
Mas a comunicação com sistemas externos é mais importante e aplicável. É para isso que o canal seguro foi aberto.
E observe que toda a implementação está dentro da estrutura das operações de arquivo padrão. Nenhuma função nova precisou ser introduzida.
Escreva seu próprio gateway em MQL5 com base nos exemplos do artigo acima.
Teoricamente você pode, mas na prática será uma muleta, e até mesmo um simplex.
Encontrei algumas informações sobre como criar gateways com custos mínimos. Acontece que o C++ tem uma classe de fluxos NamedPipeServerStream(String)
Se você chamá-la, ela criará um canal nomeado. Em seguida, podemos esperar por uma conexão chamando o método IsConnected e criar um segundo canal nomeado. Esperamos que outro cliente se conecte ao segundo canal e redirecionamos as informações do primeiro fluxo para o segundo usando o método: CopyToAsync(Stream). Depois disso, precisamos iniciar um subprocesso e, novamente usando CopyToAsync(Stream), redirecionar as informações do segundo fluxo para o primeiro. Dessa forma, os dois canais nomeados serão vinculados por duplex.
Parece fácil, mas não tenho experiência com C++. Se fosse em Java, levaria meia hora com a depuração.
Até o momento, encontrei um exemplo adequado para o redesenho: http://msdn.microsoft.com/en-us/library/bb546085.aspx. Tentarei criar um gateway full-duplex com base nele quando quiser. E se funcionar?