Websocket nasıl yapılır? - sayfa 14

 
Алексей Барбашин :

Fedor, biraz yanlış yöne gittin. Bu işe yaramayacak! Volodya'nın verdiği kodun tüm avantajlarından yararlandın. Göreviniz, websocket'ten veri almak ve mql'ye soru ve teklifi iletmek! Biz sadece alınan verilerden mql'ye teklifi döndürürken, göreviniz tüm yapıyı mql'ye döndürmek ve bilgileri günlüğe çıkarmaktır.

TAMAM. Şimdi değiştirmeye çalışacağım
 
Алексей Барбашин :

Evet, yapamaz. Ama bu sorun da aşılabilir. Son aşamada, kodun hata ayıklanması sırasında, Sharpe kütüphanesine DLLExport uygulamak yeterlidir ve her şey mt4 ile çalışacaktır.

olmayacak, zaten kontrol ettim

veya C++/CLI

veya Robert Giesecke'den Yönetilmeyenİhracat - yazdığım makale hakkında

ZY: Belki DLLExport'un yardımıyla a + b döndürme basit yöntemleri işe yarayacaktır; , daha fazlası değil, .Net başlatma gerektiren her şey çalışmıyor, ancak .... Bir örnek görmekten memnuniyet duyacağım, her zaman yeni bir şey öğrenmekten memnuniyet duyarım

ZYZY: https://github.com/3F/DllExport bulundu, kullanmadı, başka bir şey buldu ama aynı özellik

UnmanagedExports'un Robert Giesecke tarafından oluşturulduğunu lütfen tekrar unutmayın. Sayfasını ziyaret etmeniz gerekiyor.

Ancak bu depo Robert ile ilgili değildir ve genellikle hala GitHub/3F geliştiricisi tarafından geliştirilmektedir.

 

Nedense sıfır döndürür.


 
Igor Makanu :

olmayacak, zaten kontrol ettim

veya C++/CLI

veya Robert Giesecke'den Yönetilmeyenİhracat - yazdığım makale hakkında

ZY: Belki DLLExport'un yardımıyla basit yöntemler işe yarayacaktır, return a + b; , daha fazlası değil, .Net başlatma gerektiren her şey çalışmıyor, ancak .... Bir örnek görmekten memnuniyet duyacağım, her zaman yeni bir şey öğrenmekten memnuniyet duyarım


çalıştı.
IL kodunda doğru değişiklikleri yapmanız gerekir.

VS derlendikten sonra değişiklik yapan exe'mi yapıyordum.
Ve sonra C# yöntemleri C/MQL'den görünür hale gelir

artı sıralama
uzun zamandır kullanmadım

 
Vladimir Suslov :


çalıştı.
IL kodunda doğru değişiklikleri yapmanız gerekir.

VS derlendikten sonra değişiklik yapan exe'mi yapıyordum.
Ve sonra C# yöntemleri C/MQL'den görünür hale gelir

uzun zamandır kullanmıyorum

Az önce yukarıdaki mesajımı güncelledim.

bu kullandığım kodun aynısı - Robert Giesecke'den kod

ancak elle düzenleyecek bir şey yok, asıl sorun karmaşık veri türleriyle uğraşmaktır, veri alışverişi ancak son zamanlarda yapıldı, yöntemi çizdi

  [DllExport( "redismtset" , CallingConvention = CallingConvention.StdCall)]
         public static void redismtset([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1 )] byte [] value , int sz, [MarshalAs(UnmanagedType.LPWStr)] string key)
        {
             byte [] tmp = new byte [sz];
            Array.Copy( value , 0 , tmp, 0 , sz);
             if (dbExcPing()) DB.Set(key, tmp);
        }
//----
 [DllExport( "redismtget" , CallingConvention = CallingConvention.StdCall)]
         public static int redismtget([MarshalAs(UnmanagedType.LPWStr)] string key)
        {
           if (dbExcPing()) db_buffer_byte = DB.Get(key); else db_buffer_byte = null ;
             return db_buffer_byte?.Length?? - 1 ;
        }
StringBuilder aracılığıyla bir dizi diziyi işlemeye çalıştım, her şey çok kararsız çalışıyor - hem MQL4 hem de .Net'te dize arabelleği için bellek tahsisi üzerinde sürekli kontrol gerektirdiğinden onu terk ettim - genel olarak, bir şeyin ne zaman bir şey olduğu konusunda sürekli bir arama çalışmayı durdurur)))
 
Алексей Барбашин :

Bu yöntemi kullandığımda, DllExport'u bir kez uygulamak gerekiyordu ve ardından tüm yöntemlerexport olarak bildirilebiliyordu . Bu kitaplığın kendisi kodda gerekli değişiklikleri yaptı. Ancak MT5, Sharp'ı desteklemeye başladığından, onunla oynamayı bıraktım.

Sanırım soru MT4 ile ilgiliydi?

 
Алексей Барбашин :

Akıllı değil. Dequeue() yöntemi, kuyruktan bir girdi alır. İki kayıt almaya çalışıyorsunuz ve her birinin farklı parametreleri var. Öncelikle, istek anında kuyrukta iki giriş olacağını kimse size garanti etmez))

Böyle değiştirdi.

MQL


Genel olarak, şimdi hiçbir şey döndürmez, tk. eklenen kontrol

 
Igor Makanu :

Az önce yukarıdaki mesajımı güncelledim.

bu kullandığım kodun aynısı - Robert Giesecke'den kod

ama elle düzenleyecek bir şey yok, asıl sorun karmaşık veri türleriyle uğraşmaktır, veri alışverişi ancak son zamanlarda yapıldı, yöntemi çizdi

bu lib benim için işe yaramadı (birkaç yıl önce) ve kendiminkini yaptım.
Belki güncellendi ve şimdi çalışıyor.
Ama bu ilke

 
Vladimir Suslov :

bu lib benim için işe yaramadı (birkaç yıl önce) ve kendiminkini yaptım.
Belki güncellendi ve şimdi çalışıyor.
Ama bu ilke

Rusça Vin'de çalışmıyor

ancak bir sanal makine + Win 7'yi İngilizce olarak kurarsanız kesinlikle sorunsuz çalışacaktır. dil - Vin'i kurarken dili seçtim, Rusça'da kurulu Vin7'den İngilizce'ye geçmek için farklı şekillerde denedim. - kayıt defterinde veya bazı klasörlerde Rusça kalır, bu nedenle Robert Giesecke şablonu uyarılarla derlenir ve .dll dışa aktarma işlemi çalışmaz

Not: Sabit diskime 10 GB sanal makine görüntüsü kaydettim, artık Robert Giesecke şablonunu sorunsuz kullanabiliyorum

 
Beyler, neden benim için sıfır döndürüyor? Ve sıra boş mu?