Şablon parametreli derleyici hatası = void* - sayfa 12

 
fxsaber :

geliştiriciler Örneğin OrderSend'de olduğu gibi.

İşte bir örnek https://www.mql5.com/ru/forum/295485/page11#comment_9959761

Aynı soruyu cevaplamaktan bıkacaklar ve sonunda bir uyarı vereceklerini düşündüm - hayır, yorgun değiller

Yani MQL tüccarlar için değil, programcılar içindir

Баг компилятора при параметре шаблона = void*
Баг компилятора при параметре шаблона = void*
  • 2018.12.20
  • www.mql5.com
Ошибка компилятора. Билд 1961, 64 бит...
 
A100 :

Komut derleyici üzerinden yaptığım uyarıları numara ile kapatmam yeterli (MetaEditor üzerinden görünmüyor ama orada var)

Nasıl yapıldığını söyler misin?
 
Alexey Navoykov :
Nasıl yapıldığını söyler misin?

Derleme sonuçları bir dosyaya gönderilir ve önceden bilinen uyarı numaralarının olmadığı (uyarı kelimesinden sonra bir sayı vardır) satırlar zaten oradan çıkarılır.

 
A100 :

Derleme sonuçları bir dosyaya gönderilir ve önceden bilinen uyarı numaralarının olmadığı (uyarı kelimesinden sonra bir sayı vardır) satırlar zaten oradan çıkarılır.

Peki bu uyarıların ME'de görüntülenmediğinden nasıl emin olabilirim? Bu sayıları nereye koyuyorsun?
 
Alexey Navoykov :
Peki bu uyarıların ME'de görüntülenmediğinden nasıl emin olabilirim? Bu sayıları nereye koyuyorsun?

Komut satırında derleme yapıyorum ve tüm mesajlar komut satırında da yazdırılıyor. Bu, MetaEditor IDE'ye vidalanamaz. Bu, tabiri caizse son derlemedir - önemli uyarıları kontrol etmek. Artık IDE'deki uyarıya bile bakmıyorum - çok fazla var

 
A100 :

Yani MQL tüccarlar için değil, programcılar içindir

Programcı olmadığım için MQL kullanıyorum. Programcılarla ilgili bu mantrayı bitirin. Ortalama bir kullanıcının ve muhtemelen bir serbest çalışanın üzerinde MQL konuştuğumu düşünüyorum.

Bu nedenle, oldukça makul bir şekilde, dil kullanıcılarının çoğunun karşılaştığı sorunları anladığımı söyleyebilirim.

 
A100 :

Komut satırında derleme yapıyorum ve tüm mesajlar komut satırında da yazdırılıyor. Bu, MetaEditor IDE'ye vidalanamaz. Bu zaten son derlemedir - önemli uyarıları kontrol etmek

Ah, peki, bu ilginç değil... Bu arada, neden komut satırında derleme yapıyorsun?
 
Alexey Navoykov :
Ah, peki, bu ilginç değil... Bu arada, neden komut satırında derleme yapıyorsun?

Diyelim ki yeni bir derleme çıktı ve/veya tüm ve veya yalnızca belirli dosyaları yeniden derlemem gerekiyor - bir liste belirliyorum ve yalnızca bir liste/birkaç liste derleniyor

Yoksa başka bir derlemede yeniden derlemem gerekiyor mu - yapı numarasını ve listeyi ayarladım ve toplu iş dosyası her şeyi yapacak

 
A100 :

Ve 8'den sadece 4 bayt alırsanız, bu değerin anlamı nedir? Geliştiricilerin, işaretçi değerini ulong'a dönüştürmeyi açıkça yasaklamasına rağmen (mümkün olmadan önce ve bana inanın, yüksek bitler o zaman sıfır değildi)

Deneysel olarak, bu sayının tam olarak bir işaretçi dizisindeki bir işaretçinin indeksi gibi davrandığı, böyle bir dizi işaretçilere tam olarak sıralı olarak sayılar atanırsa davranacağı ve bir dizi sayı serbest bırakılırsa, onları sondan itibaren yeniden kullanacağı deneysel olarak tespit edilmiştir. bir ilki tersten serbest bıraktık tamam. Bir kişi bu tanımlayıcı sistemini kendi mimarisinde çoğaltmaya karar verirse, örneğin bir işaretçinin türünü int boyutlu bir yapıyla, anlaşılabilir bir davranışla değiştirerek ( yok edilen bir nesne için yerleşik bir tür olarak true döndürme, gerçeğe rağmen bu tür bir davranış, işaretçilerin bir dizi yararlı mantıksal operatörü aşırı yüklemesini yasaklar, bu tam bir yüzdür) ve basit bir türün tüm faydaları, sayaç aracılığıyla nesne ve işaretçi popülasyonu üzerinde sıkı kontrol sağlarken, bu sayıyı alma yeteneği nesnenin kendisinden önemli miktarda bellek tasarrufu sağlar.

Ve daha sıradan görevlerden bahsedersek, bu sayı sistemde oluşturulan nesnelerin sayısını gösterir ve dinamik listelere dayalı herhangi bir mimaride hata ayıklama için kullanışlıdır. Şaşırtıcı olmayan bir şekilde, alma yasağını nasıl "aldatacağımı" bulan ilk kişi ben değilim ve sadece 4-ki için olsa da daha hızlı bir yol önerildi.
 
A100 :

Diyelim ki yeni bir derleme çıktı ve/veya tüm ve veya yalnızca belirli dosyaları yeniden derlemem gerekiyor

Elbette, ama bu özel bir durum. Sonuçta zamanımızın çoğunu IDE'de kodlama ve derleme yaparak geçiriyoruz. Bu nedenle, gereksiz uyarıları devre dışı bırakmak çok yardımcı olacaktır.

Şahsen benim için çok fazla fazlalık var. Örneğin, dizgeye örtük döküm hakkında uyarılar. Bunun hoş olmayan sonuçlara yol açabileceği durumları hatırlamıyorum. dize, vakaların %99'unda yalnızca metni ekranda veya bir dosyada görüntülemek için kullanılır.

Veya fonksiyonun dönüş tipi bool olduğunda ve 0 veya 1 döndürdüğünüzde, derleyici de tipin boolean olmadığına yemin eder. VS'de böyle bir şey yok. Bu sabitlere bool için izin verilir. Örneğin, return false yazmaktansa return 0 yazmak benim için daha uygun, çünkü görselleştirmek çok daha kolay.

Genel olarak, günlüğüm bu iki uyarıyla neredeyse tamamen tıkanmış durumda. Onlardan kurtulmayı çok isterim.)

Elime geçer geçmez, muhtemelen kendim bitireceğim. Orada bir sürü fikrim var. Şimdiye kadar, günlüğün yalnızca derleme sonundaki (varsa) ilk hatanın başlangıcına otomatik olarak kaydırılmasını yaptım. Bu olmadan, bir hata mesajı arayarak listeyi (ve oldukça büyük) sürekli olarak manuel olarak döndürmeniz gerekiyordu. Bu daha kanamalı.