Hatalar, hatalar, sorular - sayfa 2707
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Geliştiricilerden ( @İlyas ) keşfedilen kusura dikkat etmelerini rica ediyorum.
MT5 hatası (derleme 2377), bir işaretçi türü argümanı için uygun bir aşırı yüklenmiş işlev seçerken, temel sınıf yerine ana sınıfa bir işaretçiye tür dökümü olan işlev daha öncelikli hale gelir.
Ayrıca, temel sınıfa bir işaretçi üst sınıfa bir işaretçi atandığında derleme zamanı hatasının olmaması.
Bu hatayla ilgili olası kusur: https://www.mql5.com/ru/forum/1111/page2682#comment_15591437
Mesaj için teşekkürler.
düzeltildi
Runtime Error: Incorrect casting of pointers. Expected result: printf ( "A*" );
Olduğu gibi kalır - bu kod, şablon uzmanlığının bir sonucu olarak elde edilebilir (çalışmayacak, ancak derlemeyi etkileyecek bir bölümde).
Evet, gerçekten de kodunuzda başlık 443 numaralı bağlantı noktasına değil, 80 numaralı bağlantı noktasına döndürülür.
Kodunuzu tekrar inceledim ve orada SocketTlsHandshake işlevini görmedim.
Kodunuz el sıkışma üretmiyor. Belki de durum bu.
Bu işlev için yardım, bağlantı 443 numaralı bağlantı noktasına giderse gerekli olmadığını söylese de.
Aynen, bu benim kodum değil, geliştiricilerin örneğinden (MQ soketleri, bazen forumda bulunan bazı sezgisel olmayan özelliklere sahiptir, bu yüzden standart örneğe döndüm). SocketTlsHandshake'i denedim - her koşulda her zaman false döndürür ve sorunları çözme üzerinde hiçbir etkisi yoktur. Sertifika verileri döndürüldüğünden, el sıkışma gerçekleşir. Başlık bile, uzunluğuna bakılırsa gelir, ancak MQL koduna döndürülmez. Hata kodu çok geneldir ve hatanın gerçekliği şüphelidir. İçeriden bir bakış gerekiyor.
Bağlantı başlangıçta güvenliyse ("https://" veya 443 veya 465 numaralı bağlantı noktası) SocketTlsHandshake işlevini kullanmanıza gerek yoktur.
İşlev özel durumlarda/protokollerde kullanılır
Bağlantı başlangıçta güvenliyse ("https://" veya 443 veya 465 numaralı bağlantı noktası) SocketTlsHandshake işlevini kullanmanıza gerek yoktur.
İşlev özel durumlarda/protokollerde kullanılır
Ben de kullanmıyorum. Sorunu yeniden oluşturacak kod ektedir.
Ben de kullanmıyorum. Sorunu yeniden oluşturacak kod ektedir.
SocketTlsRead'i SocketTlsReadAvailable ile değiştirin
SocketTlsRead'i SocketTlsReadAvailable ile değiştirin
Daha fazla ayrıntı verebilir misiniz? Belge örneği, SocketTlsRead'i kullanır. SocketTlsReadAvailable neden orada kullanılmadı?
Bir işlev ne zaman kullanılmalı ve diğeri ne zaman kullanılmalıdır?
Hem güvenli hem de güvenli olmayan bağlantılar için uygun bir soketten okumayı engellemek için evrensel kod nasıl yazılır - benzer bir SocketReadAvailable işlevimiz yok, değil mi?
not. Değiştirilen işlev. Hata ortadan kalkmadı. Güncellenen kodu ekliyorum. GetLastError 0 döndürür.
Görsel test cihazında, CopyTicksRange işlevinin göstergesinden gelen çağrı 4014 hatasıyla (ERR_FUNCTION_NOT_ALLOWED) sona erer.
Aynı gösterge aynı cihazda çevrimiçi olarak iyi çalışıyor. Amaç ne? Test cihazında bu fonksiyon yasaklansın mı? Yardımda bundan hiç söz edilmedi.
Görsel test cihazında, CopyTicksRange işlevinin göstergesinden gelen çağrı 4014 hatasıyla (ERR_FUNCTION_NOT_ALLOWED) sona erer.
Aynı gösterge aynı cihazda çevrimiçi olarak iyi çalışıyor. Amaç ne? Test cihazında bu fonksiyon yasaklansın mı? Yardımda bundan hiç söz edilmedi.
Gerçek kene testi mi?
Aynen, bu benim kodum değil, geliştiricilerin örneğinden (MQ soketleri, bazen forumda bulunan bazı sezgisel olmayan özelliklere sahiptir, bu yüzden standart örneğe döndüm). SocketTlsHandshake'i denedim - her koşulda her zaman false döndürür ve sorunları çözme üzerinde hiçbir etkisi yoktur. Sertifika verileri döndürüldüğünden, el sıkışma gerçekleşir. Başlık bile, uzunluğuna bakılırsa gelir, ancak MQL koduna döndürülmez. Hata kodu çok geneldir ve hatanın gerçekliği şüphelidir. İçeriden bir bakış gerekiyor.
Evet, SocketTlsHandshake olmadan sertifikanın iade edilmesine de şaşırdım.
Ve SocketTlsHandshake işleviyle bir hata veriyor.
Davranışta bir tür bariz olmayan mantık.
UPD:
İlyas'ın tavsiyesini gördüm.
Evet, bu fonksiyon olmadan bağlantıda herhangi bir problem olmaz.
Sorun okumaktır.
SocketTlsRead'i SocketTlsReadAvailable ile değiştirin
Ayrıca SocketTlsReadAvailable ile değiştirmeyi denedim
Davranış, SocketTlsRead ile aynıdır
UPD:
Aynı sorun, SocketTlsHandshake'i farklı bir bağlantı noktasında kullanırken de var.