Yazı için teşekkürler. İlginçti.
ModIcq modifikasyon olmadan mükemmel bir şekilde kullanılabilir olmasına rağmen, modifiye edilmiş versiyonla çalışmak daha kolaydır :)
IcqMod.dll doğrudan MT5'te kullanılamaz, çünkü Ansi dizeleri ile çalışır ve MT5'te dizeler Unicode biçimindedir. Bu nedenle, projenin Unicode'daki mesajlarla çalışacak şekilde yeniden tasarlanması gerekiyordu (bu amaçla protokol ikili değil HTML formatını kullanır). Şimdi, dünyanın herhangi bir dilinde mesaj gönderin ve alın! Umarım proje talep görür ve bu da onu isteklerinize göre geliştirmenize izin verir.
IcqMod.dll doğrudan MT5'te kullanılamaz çünkü Ansi dizeleriyle çalışır ve MT5'te dizeler Unicode biçimindedir.
Tam olarak değil. StringToCharArray kullanarak dönüştürmek mümkündür. Örneğin, bu kod benim için çalışıyor
struct ICQ_CLIENT { uchar status; ushort sequence; ulong sock; }; #import "IcqMod.dll" ulong ICQConnect(ICQ_CLIENT& client, uchar& host[], ushort port, uchar& login[], uchar& pass[], int proxy); void ICQClose(ICQ_CLIENT& client); ulong ICQSendMsg(ICQ_CLIENT& client, uchar& uin[], uchar& message[]); ulong ICQReadMsg(ICQ_CLIENT& client, uchar& uin[], uchar& msg[], int& msglen); #import void OnStart() { // dizeleri dll'e aktarılacak karakter dizisine dönüştürür uchar login[], password[], server[]; StringToCharArray("123456789", login); StringToCharArray("password", password); StringToCharArray("login.icq.com", server); // bağlanın ICQ_CLIENT client; ICQConnect(client, server, 5190, login, password, 0); for (;;) { uchar uinR[10], msgR[512]; int len = 0; // gelen mesajları kontrol et ICQReadMsg(client, uinR, msgR, len); if (len > 0) { string uinStr = CharArrayToString(uinR), // gönderenin UIN'si msgStr = CharArrayToString(msgR); // mesaj uchar msgS[]; // Received: mesajından önce ekleyin ve geri gönderin StringToCharArray("Alındı: " + msgStr, msgS); ICQSendMsg(client, uinR, msgS); } Sleep(100); } }
Ancak her zaman dönüştürmek sakıncalı, bu nedenle kütüphaneniz bu anlamda çok daha kullanışlı.
Proxy'ler hakkında da düşündüm. Belki de yerel bir makine için yeterli çalışacak bazı ayarlar vardır? Yani, bir proxy kullanmazsak, proxy'de bazı varsayılan ayarlar yapılır ve her şey çalışır. Kütüphanede 2 Connect fonksiyonu yapmak için bir seçenek olarak - proxy'li ve proxy'siz varyant için
Kütüphanede yapılan değişiklikler yalnızca dizeler için geçirilen değerin türünü etkilemekle kalmadı (char* idi ve wchar_t* oldu). Bu çok basit olurdu. İletilen mesajın biçimi değişti (dll'in kaynak kodundaki BuildQuery_SendMsg_Unicode işlevine bakın) ve yerel (ikili) yerine evrensel (HTML) hale geldi. IcqMod aracılığıyla iletilen Rusça değişmezlerin doğru bir şekilde alınması, test ettiğiniz yerel ICQ programının erdemidir. Rusça mesajların alımını http://wap.ebuddy.com/ veya alternatif bir ICQ yöneticisi üzerinde test etmeyi deneyin, Kiril yerine karalamalar göreceksiniz. Projemin sadece Kiril alfabesiyle değil, aynı zamanda dünyadaki diğer dillerle de doğru çalıştığı bir düzine ICQ yöneticisi denedim. Elbette reklam için özür dilerim.
Proxy'ler hakkında. Test ettim ama yerel değil, uzak SOCK4/SOCK5. Onlarla çalışmayı başaramadım. Bu yüzden onları projede hiç kullanmamaya karar verdim. Gerekirse, yapmaya çalışacağım.Teşekkür ederim! Bu çok açıktı.
Uzun zamandır bu başlığı ziyaret etmemiştim. icq_power.mqh dosyam derlenmiyor, *2 Cpp derleyicisi 02:50:00 MS Visual Studio derleyicisi sistemde yüklü değil veya derleyici başlatılamadı* diyor.
Bu ne anlama geliyor olabilir?
Uzun zamandır bu başlığı ziyaret etmemiştim. icq_power.mqh dosyam derlenmiyor, *2 Cpp derleyicisi 02:50:00 MS Visual Studio derleyicisi sistemde yüklü değil veya derleyici başlatılamadı* diyor.
Bu ne anlama gelebilir?
bu şu anlama geliyor
MS Visual Studio derleyicisi sistemde yüklü değil
veya
derleyici başlatılamadı
Bu ne anlama geliyor?
Rusça mesajların alımını http://wap.ebuddy.com/ veya alternatif bir ICQ yöneticisinde test etmeye çalışın ve Kiril yerine karalamalar göreceksiniz. Projemin sadece Kiril alfabesiyle değil, aynı zamanda dünyanın herhangi bir diliyle de doğru çalıştığı bir düzine ICQ yöneticisi denedim. Elbette reklam için üzgünüm.
2 sorum var:
1) x32 sistemlerde hala çalışıyor mu? (Kontrol etme şansım yok).
2) Kimse x64 için yeniden tasarlamadı mı? (x64 altında çalışmıyor) .
Cevap için çok minnettar olacağım. Yeniden yapmayı denedim - işe yaramadı - çalıştığımda çöküyor
2013.11.07 02:14:24 icq_demo (EURUSD.m,M1) Status_RECV_ERRORNot: Tam olarak ICQ'ya ihtiyacım var...

- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Yeni makale Expert Advisor'ın MQL5'te ICQ ile Bağlantısı yayınlandı:
Bu makalede, Expert Advisor ve ICQ kullanıcıları arasındaki bilgi alışverişi yöntemi açıklanmakta olup birkaç örnek sunulmaktadır. Sunulan materyal, bir istemci terminalinden, bir ICQ istemcisi aracılığıyla cep telefonlarına veya PDA'larına alım satım bilgilerini uzaktan almak isteyen kişiler için ilgi çekici olacaktır.
Şekil 1'de ICQ istemcisi ile metin mesajlarının değiş tokuşuna olanak tanıyan Expert Advisor'ın çalışmasının bir gösterimi sunulmuştur.
Yazar: Andrey Voytenko