DLL을 사용하지 않고 터미널에서 타사 시스템으로 연결할 수 있는 방법에 관한 것입니다. 작업이 완료되었습니다. 이제 쉽게 연결하고 전이중 데이터 교환을 할 수있는 방법이 있습니다.
타사 애플리케이션을 작성해야 한다는 불만은 잘못된 것입니다.
사실, 표준 방법, 즉 타사 목발없이 예를 들어 MQL 애플리케이션간에 통신이 제공 될 것이라고 선언되지 않았기 때문에 사실입니다.
"많은 개발자가 안전하지 않은 DLL을 사용하지 않고 거래 터미널의 샌드박스에 들어가는 방법과 같은 문제에 직면합니다."
여기에는 어떠한 주장도 없으며, 주장도 없어야 합니다.
그러나 다른 한편으로, MQL로 작성된 애플리케이션 간의 통신을 제공하는 애플리케이션 계획 작업에서 가장 요구되는 것은이 기사의 예제에서 안전하지 않은 DLL을 사용하여 매우 효과적으로 해결됩니다. 이 기사에서 문자열 메시지를 통한 통신을 구현하려면 MQL5 프로그래밍에 대한 지식과 경험 만 있으면 충분합니다 (나머지 작업, 즉 Windows API를 통한 타사 목발은 기사 작성자가 이미 완료하고 기성품 클래스로 게시했습니다).
이 클래스를 호출하면 명명된 채널이 생성됩니다. 그런 다음 IsConnected 메서드를 호출하여 연결을 기다렸다가 두 번째 명명된 채널을 만들 수 있습니다. 다른 클라이언트가 두 번째 채널에 연결될 때까지 기다렸다가 CopyToAsync(Stream) 메서드를 사용하여 첫 번째 스트림의 정보를 두 번째 스트림으로 리디렉션합니다. 그런 다음 하위 프로세스를 시작하고 다시 CopyToAsync(Stream)를 사용하여 두 번째 스트림의 정보를 첫 번째 스트림으로 리디렉션해야 합니다. 이렇게 하면 명명된 두 채널이 이중으로 연결됩니다.
쉬워 보이지만 저는 C++에 대한 경험이 없습니다. Java였다면 디버깅에 30분이 걸렸을 것입니다.
Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
................
한편으로 우리는 dll을 제거했지만 다른 한편으로는 응용 프로그램을 위해 다른 프로그래밍 언어의 목발이 필요합니다.
제안 된 방법의 단점은 MQL 이외의 언어로 응용 프로그램을 개발하는 프로그래머에게만 적합하다는 것입니다. ...................
흥미를 위해 이 주제의 제목을 읽어보시기 바랍니다.
더 이상은 아닙니다. https://www.mql5.com/ru/forum/7806/page3 을 참조하세요 .
이것은 클라이언트 지원이며 터미널에서 서버 연결을 만들 수 없다는 점에 유의하세요.
더 이상은 아닙니다. https://www.mql5.com/ru/forum/7806/page3 참조 .
조용히 지낼게요. 아무에게도 말하지 마세요. 쉿.....
오, 당신. 개발자들이 열심히 일해서 고객과 연결하고 기사를 썼어요.
그런데 당신은요? 모든 것을 포기하고 C를 배우고이 모든 것을 공개적이고 정직하게 사용하는 대신 조용히 깊은 지하에서 dll을 통해 커넥터를 쫓고 있습니다.
아무리 (손가락을 가리키지 말자) 당신이 그에게 먹이를 주더라도 그는 여전히 터미널에서 dll을 사용하고 싶어합니다.
일반 영웅은 항상 우회합니다 © N. Korostylev
위에서 언급한 문서의 예제를 기반으로 MQL5로 게이트웨이를 작성하세요. 그리고 클라이언트 스크립트를 순수 MQL로 작성할 수 있습니다.
하지만 왜 그렇게 일방적 인 솔루션을 만들어야하는지 이해가되지 않습니다. C로 자신의 서버를 작성하는 사람들은 dll을 연결하는 것이 문제가되지 않지만 나머지 현재 기능으로는 충분하지 않습니다. dll이 작업 속도를 많이 늦추지 않는 한 (의심 스럽습니다).
이제 타사 응용 프로그램을 작성해야한다는 불만이 잘못 배치되었습니다.
이 글의 주제와 요점에 주목해 주세요.
DLL을 사용하지 않고 터미널에서 타사 시스템으로 연결할 수 있는 방법에 관한 것입니다. 작업이 완료되었습니다. 이제 쉽게 연결하고 전이중 데이터 교환을 할 수있는 방법이 있습니다.
타사 애플리케이션을 작성해야 한다는 불만은 잘못된 것입니다.
이 글의 주제와 요점에 주목해 주세요.
DLL을 사용하지 않고 터미널에서 타사 시스템으로 연결할 수 있는 방법에 관한 것입니다. 작업이 완료되었습니다. 이제 쉽게 연결하고 전이중 데이터 교환을 할 수있는 방법이 있습니다.
타사 애플리케이션을 작성해야 한다는 불만은 잘못된 것입니다.
사실, 표준 방법, 즉 타사 목발없이 예를 들어 MQL 애플리케이션간에 통신이 제공 될 것이라고 선언되지 않았기 때문에 사실입니다.
"많은 개발자가 안전하지 않은 DLL을 사용하지 않고 거래 터미널의 샌드박스에 들어가는 방법과 같은 문제에 직면합니다."
여기에는 어떠한 주장도 없으며, 주장도 없어야 합니다.
그러나 다른 한편으로, MQL로 작성된 애플리케이션 간의 통신을 제공하는 애플리케이션 계획 작업에서 가장 요구되는 것은이 기사의 예제에서 안전하지 않은 DLL을 사용하여 매우 효과적으로 해결됩니다. 이 기사에서 문자열 메시지를 통한 통신을 구현하려면 MQL5 프로그래밍에 대한 지식과 경험 만 있으면 충분합니다 (나머지 작업, 즉 Windows API를 통한 타사 목발은 기사 작성자가 이미 완료하고 기성품 클래스로 게시했습니다).
그리고 전체 구현은 표준 파일 작업의 프레임워크 내에 있다는 점에 유의하세요. 새로운 기능을 도입할 필요가 없었습니다.
위 문서의 예제를 바탕으로 MQL5에서 자신만의 게이트웨이를 작성해 보세요.
이론적으로는 가능하지만 실제로는 버팀목이 될 것이며 심지어 단순 할 것입니다.
최소한의 비용으로 게이트웨이를 만드는 방법에 대한 몇 가지 정보를 찾았습니다. C++에는 NamedPipeServerStream(String) 스트림 클래스가 있다는 것이 밝혀졌습니다.
이 클래스를 호출하면 명명된 채널이 생성됩니다. 그런 다음 IsConnected 메서드를 호출하여 연결을 기다렸다가 두 번째 명명된 채널을 만들 수 있습니다. 다른 클라이언트가 두 번째 채널에 연결될 때까지 기다렸다가 CopyToAsync(Stream) 메서드를 사용하여 첫 번째 스트림의 정보를 두 번째 스트림으로 리디렉션합니다. 그런 다음 하위 프로세스를 시작하고 다시 CopyToAsync(Stream)를 사용하여 두 번째 스트림의 정보를 첫 번째 스트림으로 리디렉션해야 합니다. 이렇게 하면 명명된 두 채널이 이중으로 연결됩니다.
쉬워 보이지만 저는 C++에 대한 경험이 없습니다. Java였다면 디버깅에 30분이 걸렸을 것입니다.
지금까지 재 설계에 적합한 예제를 찾았습니다 : http://msdn.microsoft.com/en-us/library/bb546085.aspx. 나는 여가 시간에 그것을 기반으로 전이중 게이트웨이를 구축하려고 노력할 것입니다. 작동하면 어떨까요?