"10 dakikada MQL5 için DLL kütüphanesi nasıl yazılır ve veri alışverişi yapılır?" makalesinin tartışılması - sayfa 9

 
Renat :

Teknik seviyenizi geliştirmelisiniz.

64-bit programlar için 64-bit kitaplıklara ihtiyaç vardır ve 32-bit olanları makul bir çerçeve içinde bağlamanın bir yolu yoktur. 32 bit sürümü yüklemek için yükleyicinin /32 anahtarıyla çalıştırılması gerekir.

Makaleyi yeniden yazacağım ve MetaEditor ve MT4 ve MT5 platformlarında uzun süredir uygulanan harika şeyleri ekleyeceğim. Birçok geliştirici yeni özelliklerin farkında değil.

Cevabınız için teşekkürler Renat. Artık piyasalar oldukça karmaşık ve ticaret sizi çok uzun sürüyor ve teknik alanda iyileştirme için neredeyse hiç zaman kalmadı. 32 ve 64 bit programlar arasındaki farkı gerçekten anlamıyorum. Sadece bu nedenle kullanıcılar için bazı gereksiz sorunların yaratıldığını görüyorum. Microsoft dahil herkes bir yere gidiyor, daha hızlı soğutma istiyorlar, ancak kullanıcılar için sürekli sorunlar var. Bilgisayarım 32'de 64 bit'ten çok fazla hız farkı görmüyorum. Doğru, işlemcim i7-4 - belki de bundan dolayı son Intel olanı. Ve Microsoft'un C++'ı sıkıştırmaya başladığını görüyorum. En son derleyicide, C++'da formlarla çalışma yeteneği ayarı bile kaldırıldı. Ve neden sorusuna? Neden yeni, daha gelişmiş bir C# üzerinde denemiyorsunuz diye yanıtlıyorlar. Dolayısıyla geleceğe bakıyorsanız, bunu da göz önünde bulundurmalısınız.
 
ANG3110 :


Ve Microsoft'un C++'ı sıkıştırmaya başladığını görüyorum. En son derleyicide, C++'da formlarla çalışma yeteneği ayarı bile kaldırıldı. Ve neden sorusuna? Neden yeni, daha gelişmiş bir C# üzerinde denemiyorsunuz diye yanıtlıyorlar. Dolayısıyla geleceğe bakıyorsanız, bunu da göz önünde bulundurmalısınız.

Microsoft iyi bilinen bir teknoloji katili ve son zamanlarda kendisi için mezar üstüne mezar kazıyor.

Onu neden rahatsız etsin - bırakın kendi deliğine düşsün. Bu, teknik ayrıntılarla zaman kaybetmemek için çok mecazi. Ayrıntıları kim ister - İnternette binlerce var. "Daha iyi C#" dan sonra başka sözüm yok.

 
:)
 
Meslektaşlarım, VS'deki MT kitaplıklarını nasıl bağlayabilirim? böylece stüdyom string, datetime altını çizmez ...
 
Renat Fatkhullin :

Teknik seviyenizi geliştirmelisiniz.

64-bit programlar için 64-bit kitaplıklara ihtiyaç vardır ve 32-bit olanları makul bir çerçeve içinde bağlamanın bir yolu yoktur. 32 bit sürümü yüklemek için yükleyicinin /32 anahtarıyla çalıştırılması gerekir.

Makaleyi yeniden yazacağım ve MetaEditor ve MT4 ve MT5 platformlarında uzun süredir uygulanan harika şeyleri ekleyeceğim. Birçok geliştirici yeni özelliklerin farkında değil.

Terminalin 64 bit sürümü için 64 bit dll oluşturmak için bir örnek var mı? Evet ve "harika şeyler" hakkında bilmek ilginç)
 

Her şeyin kolay olduğu ortaya çıktı!

Ücretsiz Visual Studio Community 2015'i kurdum (yani Topluluk, çünkü Express'in aksine x64 desteği var).Tabii ki, x64'ün ücretli sürümlerinde de var, ancak ücretsiz seçenekleri düşündüm. Web Installer bana bir hata verdi, ben de onu bir ISO görüntüsünden yükledim. Kurulum sırasında "Özel" kurulumu seçin ve C++'ı kontrol edin (varsayılan olarak kurulmaz).

Sonra makalede olduğu gibi her şeyi yaptım, yani. bir Win32 projesi oluşturdu. x64 terminalinin kabul etmeyi reddettiği bir derleme yaptı (beklendiği gibi).

Sonra "Yap" -> "Yapılandırma Yöneticisi" sekmesinde platformu x64 olarak değiştirdim ("Aktif Çözüm Platformunu" x64 olarak da değiştirebilirsiniz)


Tekrar toplandı. Yeni dll, x64 terminalinin sorunsuz bir şekilde işlediği \x64\Debug klasöründe (son derleme x64\Release\ içinde olacaktır) sona erdi ve aşağıdakileri yayınladı:

19:29:01.883 dll_test (EURUSD.e,H1) Süre 16 msn, int: -752584127 double: 17247836076609.0
19:29:01.883 dll_test (EURUSD.e,H1) Dizi: 0 1 2 3 4 5 6 7 8 9
19:29:01.883 dll_test (EURUSD.e,H1) Değiştirin: Hızlı kahverengi bir kedi tembel köpeğin üzerinden atlar
19:29:01.886 dll_test (EURUSD.e,H1) 0x000007FEFB0F176F'de erişim ihlali '...\MQL5\Libraries\ConsoleApplication1.dll' içinde 0x0000000000000000'e yaz
ve yakalanan hatanın daha fazla açıklaması
Onlar. her şey çalışıyor!!!

Downloads | Visual Studio
Downloads | Visual Studio
  • www.visualstudio.com
Visual Studio Community 2015 with Update 1 - Free Visual Studio Community 2015 with Update 1 is a free, fully featured, and extensible IDE for individual developers, open source projects, academic research, education, and small professional teams. Create applications for Windows, Android, and iOS as well as web applications and cloud services...
 

Not:

başka bir bilgisayara aktarıldığında, DLL çalışmayı reddetti, çünkü VS'nin kendisinden bileşenler kullandı. Sorun, "Statik kitaplıkta MFC kullan" olarak ayarlanan Proje -> Özellikler -> MFC Kullan'da çözüldü. Bundan sonra, DLL'yi yeniden oluşturun ve yeniden derleyin

Forumda bulundu:

Uzman Danışmanları DLL ile sadece yerel bilgisayarda değil, yerel ağda da optimize etmek mümkündür. Bunu yapmak için, ağ bilgisayarlarında aracıları test etmek için /dlls anahtarını kayıt defterine ekleyin. Kayıt defteri düzenleyicisi çağrısı: regedit

Renat Fatkhullin :

Mevcut kurulu aracılar için başlatma komutlarını yalnızca HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MetaTester-XXXX dallarındaki kayıt defteri aracılığıyla değiştirebilirsiniz.

Her ImagePath parametresine tıklayın ve satırın sonuna / dll'leri ekleyin


 

Şu anda DLL aracılığıyla ZeroMQ'yu MT4'e bağlıyorum.

Bir şekilde çok kötü. Göstergeyi başlatırken veya boşaltırken terminal her zaman parçalanır. Ve hata ayıklama modunda görünmüyor, bu yüzden neler olduğu hiç belli değil.

 

Tünaydın.

Nedense, bir test senaryosu çalıştırdığımda, içe aktarılan işleve yapılan ilk çağrıda komut dosyası kesiliyor

2016.07.30 23:30:14.088 Komut dosyası komut dosyası mql5dll_test (EURUSD,H1) kaldırıldı

Neyi yanlış yapıyorum?

 
EsEr :

Tünaydın.

Nedense, bir test senaryosu çalıştırdığımda, içe aktarılan işleve yapılan ilk çağrıda komut dosyası kesiliyor

2016.07.30 23:30:14.088 Komut dosyası komut dosyası mql5dll_test (EURUSD,H1) kaldırıldı

Neyi yanlış yapıyorum?

makale 6 yıl önce, bir şeyler değişti, büyük olasılıkla

hata kodu nedir?