Benim yaklaşımım. Çekirdek - Motor. - sayfa 24

 
Реter Konow :

Doğru.

Uygulamanın GUI'sini taşıyan motor, kontrollerin (düğmeler, giriş alanları, vb.) mekaniğini basitçe uygular.

Düğmelere, onay kutularına, metin girişine ve diğer kullanıcı eylemlerine yapılan tıklamalar doğrudan geliştiricinin uygulamasına aktarılır.

Bir uygulama verilerini alanlara ve tablolara aktarabilir.

Her şey basit bir bağlantı dosyası aracılığıyla yapılır.

Peki, o zaman başka bir konu.

 
Yuriy Asaulenko :

Şimdi, MT NET-dll için tam zamanında geldiler. MT için C-sharp'ta bir GUI oluşturmak artık zor değil, hatta daha fazla işlevsellik ile. Dan beri herhangi birine göre, tüm olaylar MT kenelerine, ardından düğmelere de gider. Eh, analizi hızlandırmak için IMHO, DLL'i Peter'dan daha kolay.

Genel olarak, Peter'ın motoru, herkes için faydalıysa, o zaman sadece DLL'nin olmadığı Market satıcıları için.

Birincisi, "herhangi bir zorluk yaratmıyor" diyerek kurnazsınız. C#'da GUI yapmak kolaydır, ancak onu bir MQL uygulamasına bağlamak ???

Böyle bir bağlantı örneği gösterin. En azından, ürkütücü bir koltuk değneği. Her şeyi DLL üzerinden yapmanız gerekir. Etkinlik gönder, etkinlik al...

Etkileşim arayüzünün sizin tarafınızdan oluşturulması gerekir. MT THROUGH DLL üzerinde bir uygulama ile Sharp üzerinde bir GUI ilişkisi geliştirmek ne kadar çaba ve zaman alacaktır?

Kararımın basitliği göz önüne alındığında bunu kim yapacak? Zaten bir bağlantı arayüzüm var. Bağlantı sorunu - yarım saat (birkaç pencere varsa). Her şey çok basit. DLL yok.

Yani bu "ölmekte olan" bir fikir.

 
Реter Konow :

Birincisi, "herhangi bir zorluk yaratmıyor" diyerek kurnazsınız. C#'da GUI yapmak kolaydır, ancak onu bir MQL uygulamasına bağlamak ???

Böyle bir bağlantı örneği gösterin. En azından, ürkütücü bir koltuk değneği. Her şeyi DLL üzerinden yapmanız gerekir. Etkinlik gönder, etkinlik al...

Etkileşim arayüzünün sizin tarafınızdan oluşturulması gerekir. MT THROUGH DLL üzerinde bir uygulama ile Sharp üzerinde bir GUI ilişkisi geliştirmek ne kadar çaba ve zaman alacaktır?

Kararımın basitliği göz önüne alındığında bunu kim yapacak? Zaten bir bağlantı arayüzüm var. Bağlantı sorunu - yarım saat (birkaç pencere varsa). Her şey çok basit. DLL yok.

Yani bu "ölmekte olan" bir fikir.

Hepsi aynı. Komplikasyon yok. Hangi işlevi çağırdığınız önemli değil - uygulama veya DLL. Fonksiyonları çağırmanın zorluğunu görüyor musunuz?

 
Yuriy Asaulenko :

Hepsi aynı. Komplikasyon yok. Hangi işlevi çağırdığınız önemli değil - uygulama veya DLL.Fonksiyonları çağırmanın zorluğunu görüyor musunuz?

Numara. Nokta, parametre değerlerinin senkronize edilmesi gereken bellektedir. Bellek, bir dosyada veya bir DLL'deki (veya başka bir yerde) uygulamaların paylaşılan belleğinde olmalıdır.

Ama asıl mesele bu değil.

ANA FİKİR:

MQL UYGULAMALARININ ETKİLEŞİMİNE YÖNELİK ARAYÜZÜN GELİŞTİRİLMESİ VE SHARP GUI'NİN GELİŞTİRİLMESİ STANDART OLMAMIŞTIR. Her geliştiricinin Sharp'taki GUI'sine bağlanmak için bir arayüz bulması gerekecek.

Ve her şey zaten benim için çalışıyorsa, bunun için ne gerekli olacak?

 
Реter Konow :

Numara. Nokta, parametre değerlerinin senkronize edilmesi gereken bellektedir. Bellek, bir dosyada veya bir DLL'deki (veya başka bir yerde) uygulamaların paylaşılan belleğinde olmalıdır.

Ama asıl mesele bu değil.

ANA FİKİR:

MQL UYGULAMALARININ ETKİLEŞİMİNE YÖNELİK ARAYÜZÜN GELİŞTİRİLMESİ VE SHARP GUI'NİN GELİŞTİRİLMESİ STANDART OLMAMIŞTIR. Her geliştiricinin Sharp'taki GUI'sine bağlanmak için bir arayüz bulması gerekecek.

Ve her şey zaten benim için çalışıyorsa, ne için gerekli olacak?

Durumu dramatize ediyorsun.)

 
Yuriy Asaulenko :

Durumu dramatize ediyorsun.)

Damla değil. durumu biliyorum. MT ve Sharp üzerindeki uygulama arasındaki ilişkiyi C++ ile yazılmış bir DLL aracılığıyla yaptım. Korkunç hemoroidler. Visual studio ve MT ile aynı anda çalışmanız gerekiyor. Ardından uygulamaları paralel olarak çalıştırın.

Ama en önemlisi, uygulama bölümlerinin etkileşim biçimi hiç kimse tarafından geliştirilmemiştir . Bu nedenle herkes kendi kendine eziyet görecektir.

 
Реter Konow :

Damla değil. durumu biliyorum. MT ve Sharp üzerindeki uygulama arasındaki ilişkiyi C++ ile yazılmış bir DLL aracılığıyla yaptım. Korkunç hemoroidler. Visual studio ve MT ile aynı anda çalışmanız gerekiyor. Ardından uygulamaları paralel olarak çalıştırın.

Ancak en önemlisi, hiç kimse uygulamanın bölümlerinin etkileşimi için bir format geliştirmedi. Bu nedenle, herkes kendi kendine eziyet görecek.

DLL standart bir Windows aracıdır. DLL ile etkileşim, DOS günlerinden beri uzun süredir geliştirilmiş ve yaygın olarak kullanılmaktadır. Orada hiçbir sorun yok.

 
Yuriy Asaulenko :

DLL standart bir Windows aracıdır. DLL ile etkileşim, DOS günlerinden beri uzun süredir geliştirilmiş ve yaygın olarak kullanılmaktadır. Orada hiçbir sorun yok.

Sharp tarafından DLL ile geliştirilmiş etkileşim. Ve MKL uygulamasının Sharp ile DLL aracılığıyla etkileşimi, programcı için kişisel bir güçlüktür.

Paylaşılan hafızayı düzenlemesi ve okuma bayraklarına göre işlevlerine çağrı yapması gerekir.

Bu nedenle DLL'de veya dosyada bulunan paylaşılan belleğe sonsuz bir şekilde erişmeniz gerekir. Sonuçta, Sharp'tan DLL aracılığıyla MT'ye geri arama yoktur.

 
Реter Konow :

Sharp tarafından DLL ile geliştirilmiş etkileşim. Ve MKL uygulamasının Sharp ile DLL aracılığıyla etkileşimi, programcı için kişisel bir güçlüktür.

Paylaşılan hafızayı düzenlemesi ve okuma bayraklarına göre işlevlerine çağrı yapması gerekir.

Bu nedenle DLL'de veya dosyada bulunan paylaşılan belleğe sonsuz bir şekilde erişmeniz gerekir. Sonuçta, Sharp'tan DLL aracılığıyla MT'ye geri arama yoktur.

MT'de de bir geri aramanız yok. Her şey MT'de önceden belirlenmiş olaylara göre yapılır, bir zamanlar ve bu kadar.

Terminal olaylarını yine DLL'ye ileteceksiniz ve bunları nerede, MT'de veya DLL'de işlediğinizin bir önemi yok.

 

Sharp'tan gelen mesajları MCL uygulaması ile sürekli kontrol etmenin pahalı olmadığını düşünsek bile, o zaman bir etkileşim formatı geliştirmek çok hacimli bir iştir.

Bu görev aşağıdakileri içerir:

1. Paylaşılan hafızanın organizasyonunu icat etmek.

2. Üç tarafın etkileşiminin uygulanması.

3. Üç tarafın senkron testi (Sharp, DLL, MT-app).

Çok emek yoğun.


Benim durumumda, kullanıcı dosyayı alır ve doldurur. Ve bağlantı çalışıyor.