"Adlandırılmış Kanalları kullanarak MetaTrader 5 terminalleri arasında iletişim kurmak için DLL içermeyen bir çözüm" makalesi için tartışma - sayfa 3

 
mql4/5'in çoklu iş parçacığı olasılığından yoksun olduğu gerçeğini hesaba katarsak, mql4/5 üzerinde bir sunucu yapmak tüplü bir TV izlemek gibidir (çalışıyor gibi görünüyor, ancak duygu aynı değil. Bu yüzden ayrı bir sunucu yazmak ve mql programları arasında veri aktarmak için kullanmak daha iyidir.
 
Merhaba, bu hala çalışan bir ürün mü? Değilse, en son MT5 yapısı altında çalışacak şekilde güncellenebilir mi? Şu anda bir 'Erişim İhlali' atıyor
 

Ayrıca writeTick, readTick... ve benzeri yöntemleri çağırırken erişim ihlali hatalarıyla karşılaştım. Düzeltilmiş CNamedPipes dosyasını ekte bulabilirsiniz.

Ayrıca CNamedPipe SınıfınaWriteDouble Metodunu da ekledim :

#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);
//--- parametreleri kontrol et
   if(!data || data_size<1) return(false);

//--- veri gönder
   int written;
   if(!WriteFile(hPipe,data,data_size,written,NULL) || written!=data_size)
      return(false);
//--- tamam
   return(true);
  }


Yan Not: İstemci Tarafında (örneğin başka bir Metatrader Terminalinden) okumak/yazmak için sadece standart MQL5 FilePipe Kütüphanesini kullandım. Bunların nasıl kullanılacağına dair örnekleri buradan indirebilirsiniz:


https://www.mql5.com/tr/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.
Dosyalar:
 
harika bir çalışma
 
Burada bir güncelleme yapılmayalı uzun zaman oldu... Göstergeyi grafiğe eklediğimde "Erişim İhlali" hatası görüyorum. Sanırım bunu çalıştırmanın bir yolu yok.