"DLL'leri Kullanmadan Adlandırılmış Kanalları Kullanarak MetaTrader 5 ile İletişim Kurma" makalesi için tartışma - sayfa 2
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
................
Bir yandan dll'den kurtulduk, ancak diğer yandan uygulama için yine diğer programlama dillerinde koltuk değneklerine ihtiyaç duyuluyor.
Önerilen yöntemin dezavantajı ise sadece MQL dışındaki dillerde uygulama geliştiren programcılar için uygun olmasıdır. ...................
En azından ilgi çekmek için bu konunun başlığını okumalısınız
Artık öyle değil. Bkz . https://www.mql5.com/ru/forum/7806/page3.
Bunun istemci desteği olduğunu ve sunucu bağlantılarının terminalde oluşturulamayacağını unutmayın.
Artık öyle değil. https://www.mql5.com/ru/forum/7806/page3 adresini gör.
Dikkat çekmemeye çalışacağım. Kimseye söyleme. Shhhh.....
Oh, sen. Geliştiriciler çok çalıştılar, müşteri bağlantıları kurdular, makaleyi yazdılar.
Ve sen ne yaptın? Her şeyden vazgeçmek, C öğrenmek ve tüm bu şeyleri açık ve dürüst bir şekilde kullanmak yerine, sessizce ve derin yeraltında dll'ler aracılığıyla konektörleri kovalıyorsunuz.
Onu ne kadar beslerseniz besleyin (parmakla göstermeyelim), yine de terminalde dll kullanmak istiyor.
Normal kahramanlar her zaman dolambaçlı yollara saparlar © N. Korostylev
Yukarıda belirtilen makaledeki örneklere dayanarak ağ geçidinizi MQL5'te yazın. Ve istemci komut dosyalarını saf MQL'de yazabilirsiniz.
Gerçi neden böyle tek taraflı bir çözüm yaptığınızı anlamış değilim. Kendi sunucusunu C ile yazacak olanlar dll bağlamak sorun değil ama mevcut işlevselliğin geri kalanı yeterli olmayacaktır. Tabi dll işi çok yavaşlatmıyorsa (ki bundan şüpheliyim).
DLL kullanmadan terminalden üçüncü taraf sistemlere bağlanabilmekle ilgilidir. Görev tamamlandı - artık bağlanmanın ve tam çift yönlü veri alışverişinin kolay bir yolu var.
Şimdi üçüncü taraf bir uygulama yazmanın gerekli olduğu yönündeki şikayet yersizdir.
Lütfen konuya ve makalenin özüne dikkat edin.
DLL'leri kullanmadan terminalden üçüncü parti sistemlere bağlanabilmekle ilgilidir. Görev tamamlandı - artık bağlanmanın ve tam çift yönlü veri alışverişinin kolay bir yolu var.
Üçüncü parti bir uygulama yazmak zorunda olduğunuz şikayeti yersizdir.
Lütfen konuya ve makalenin özüne dikkat edin.
DLL'leri kullanmadan terminalden üçüncü parti sistemlere bağlanabilmekle ilgilidir. Görev tamamlandı - artık bağlanmanın ve tam çift yönlü veri alışverişinin kolay bir yolu var.
Üçüncü parti bir uygulama yazmak zorunda olduğunuz şikayeti yersizdir.
Aslında bu doğrudur, çünkü standart yöntemlerle, yani üçüncü taraf koltuk değnekleri olmadan, örneğin MQL uygulamaları arasında iletişim sağlanacağı beyan edilmemiştir.
"Birçok geliştirici aynı sorunla karşı karşıyadır - güvenli olmayan DLL'ler kullanmadan ticaret terminalinin sanal alanına nasıl girilir."
Burada herhangi bir iddia yok ve olmamalı da.
Ancak diğer yandan, uygulama planında en çok talep edilen MQL ile yazılmış uygulamalar arasında iletişim sağlama görevi, bu makaledeki örnekler üzerinde güvenli olmayan dll'ler kullanılarak çok etkili bir şekilde çözülmüştür. Çünkü bu makalede, string mesajlar aracılığıyla iletişimi uygulamak için sadece MQL5'te programlama bilgi ve deneyimine sahip olmak yeterlidir (işin geri kalanını, yani Windows API aracılığıyla üçüncü taraf koltuk değneklerini, makalenin yazarı zaten yapmış ve hazır bir sınıf olarak yayınlamıştır).
Ancak harici sistemlerle iletişim daha önemli ve uygulanabilirdir. Güvenli kanal bunun için açıldı.
Ve tüm uygulamanın standart dosya işlemleri çerçevesinde olduğunu unutmayın. Yeni bir fonksiyon eklenmesine gerek yoktu.
Yukarıdaki makaledeki örneklere dayanarak MQL5'te kendi ağ geçidinizi yazın.
Teorik olarak yapabilirsiniz, ancak pratikte bu bir koltuk değneği ve hatta simpleks olacaktır.
En az maliyetle ağ geçitlerinin nasıl yapılacağına dair bazı bilgiler buldum. C++'ın NamedPipeServerStream(String) adında bir akış sınıfına sahip olduğu ortaya çıktı.
Bunu çağırırsanız, adlandırılmış bir kanal oluşturacaktır. Daha sonra IsConnected yöntemini çağırarak bir bağlantı bekleyebilir ve ikinci bir adlandırılmış kanal oluşturabiliriz. Başka bir istemcinin ikinci kanala bağlanmasını bekleriz ve CopyToAsync(Stream) yöntemini kullanarak ilk akıştaki bilgileri ikincisine yönlendiririz. Bundan sonra bir alt süreç başlatmamız ve yine CopyToAsync(Stream) kullanarak ikinci akıştaki bilgileri birinciye yönlendirmemiz gerekir. Bu şekilde her iki adlandırılmış kanal da çift yönlü olarak bağlanacaktır.
Kolay görünüyor, ancak C++ ile hiç deneyimim yok. Eğer Java olsaydı, hata ayıklama ile yarım saat sürerdi.
Şimdiye kadar yeniden tasarlamak için uygun bir örnek buldum: http://msdn.microsoft.com/en-us/library/bb546085.aspx. Boş zamanlarımda buna dayanarak tam çift yönlü bir ağ geçidi oluşturmaya çalışacağım. Ya çalışırsa?