Kütüphaneler: MultiTester - sayfa 20

 

Uzun süre yaşamış gibi görünen bir yığın çökmesi ile ilgili zor bir hata.

    ::ArrayResize(Buf, (int)user32::SendMessageW(Handle, CB_GETLBTEXTLEN, 0, 0 ));
    user32::SendMessageW(Handle, CB_GETLBTEXT, 0, Buf);

CB_GETLBTEXTLEN: Dönüş değeri, sonlandırıcı null karakteri hariç olmak üzere, dizenin TCHAR cinsinden uzunluğudur

CB_GETLBBTEXT: Arabellekte dize için yeterli alan ve sonlandırıcı bir boş karakter bulunmalıdır

Şunları yazmalısınız

::ArrayResize(Buf, (int)user32::SendMessageW(Handle, CB_GETLBTEXTLEN, 0, 0 )+1);
 
traveller00:

Uzun süre yaşamış gibi görünen bir yığılma ile akıllıca bir hata.


CB_GETLBTEXTLEN: Dönüş değeri, sonlandırıcı null karakteri hariç olmak üzere, dizenin TCHAR cinsinden uzunluğudur

CB_GETLBBTEXT: Arabellekte dize için yeterli alan ve sonlandırıcı bir boş karakter bulunmalıdır

Şunları yazmalısınız

Teşekkürler! Doğru, bunun kullanıldığı GetExpertName neredeyse bir ilke haline geldi.

 
fxsaber:

GetExpertName, kullanıldığı yerlerde neredeyse bir ilke haline gelmiştir.

Nasıl desem, Run' dan çekilen SetExpertName 'de kullanılıyor ve aslında MultiTester'daki ana fonksiyonlardan biri. Hata nadir görülse de ben tesadüfen denk geldim.

 
traveller00:

Nasıl desem,Run' dan çekilen SetExpertName'de kullanılıyor ve aslında MultiTester'daki ana fonksiyonlardan biri. Hata nadiren ortaya çıksa da, tesadüfen karşılaştım.

Bir süredir böyle değildi.

 
    Str += iBeginTime ? "FromDate==" + ::TimeToString(iBeginTime, TIME_DATE) + "\n" : NULL;
    Str += iEndTime ? "ToDate==" + ::TimeToString(iEndTime, TIME_DATE) + "\n" : NULL;

"FromDate==" ve "ToDate==" içinde fazladan eşittir işareti var mı?

 
traveller00:

"FromDate==" ve "ToDate==" içinde fazladan eşittir işareti var mı?

Gereksiz, teşekkürler.

 
Merhaba. MultiTester'ı standart bir forward ile WFO olarak kullanıyorum, ancak standart 1/4 dönem bölücü yeterli değil. Kodunuzu anlamaya ve MultiTester'a forward'ın tarih alanını doldurmayı öğretmeye çalışıyorum, ancak OOP bilgisi olmadan bunu yapamıyorum. MTTester dosyasında Run() fonksiyonuna ulaştım. Daha fazlasını anlamıyorum. Tüm parametreler tek bir satıra yapıştırılıyor ve SetSettings2 ve SetSettings'e aktarılıyor, burada çarpılıyor ve panoya aktarılıyor. Dizede başka bir parametre belirirse ve MultiTester verileri pencereye eklerse başka neyin düzeltilmesi gerektiğini söyleyebilir misiniz? Bir pencere tanıtıcısı ve ileri tarih metni daha eklerdim.
Ve aynı zamanda, lütfen bana TesterSettings.Add() işlevindeki INITDEINIT fInit ve INITDEINIT fDeinit'in amacını anlatın.
 
Good Beer:
Merhaba. MultiTester'ı standart bir forward ile WFO olarak kullanıyorum, ancak standart 1/4 dönem bölücü yeterli değil. Kodunuzu anlamaya ve MultiTester'a forward'ın tarih alanını doldurmayı öğretmeye çalışıyorum, ancak OOP bilgisi olmadan bunu yapamıyorum. MTTester dosyasında Run() fonksiyonuna ulaştım. Daha fazlasını anlamıyorum. Tüm parametreler tek bir satıra yapıştırılıyor ve SetSettings2 ve SetSettings'e aktarılıyor, burada çarpılıyor ve panoya aktarılıyor. Satırda başka bir parametre görünürse ve MultiTester verileri pencereye eklerse neyi düzeltmem gerektiğini söyleyebilir misiniz?

Test Cihazı->Ayarlar sekmesinde CTRL+C tuşlarına basın ve ardından bir metin düzenleyicide CTRL+V tuşlarına basın. Test Cihazının tüm ayarlarını göreceksiniz.

ForwardMode
ForwardDate

Bu iki parametre ilerlemeden sorumludur (ikincisi, ilki 4 olduğunda geçerlidir).


MTTester, Tester ayarlarını pano aracılığıyla yönetir ve metin düzenleyicide CTRL+V ile gördüğünüz şeyi oluşturur.

 
fxsaber:


MTTester, Tester ayarlarını pano aracılığıyla yönetir ve CTRL+V ile bir metin düzenleyicide gördüğünüz şeyi oluşturur.

Teşekkürler.

Görev açık: üstten sayarak doğru satırı bulun ve gerekli metinle değiştirin.

 
Good Beer:

Görev açıktır: üstten doğru satırı bulun ve gerekli metinle değiştirin.

Satır numarası değişir ve önemli değildir.

  static bool Run( const string ExpertName = NULL,
                   const string Symb = NULL,
                   const ENUM_TIMEFRAMES period = PERIOD_CURRENT,
                   const datetime iBeginTime = 0,
                   const datetime iEndTime = 0,
                   const int ForwardMode = 0 )
  {
    string Str = "[Tester]\n";

    Str += (ExpertName != NULL) ? "Expert=" + ExpertName + "\n" : NULL;
    Str += (Symb != NULL) ? "Symbol=" + Symb + "\n" : NULL;
    Str += iBeginTime ? "FromDate=" + ::TimeToString(iBeginTime, TIME_DATE) + "\n" : NULL;
    Str += iEndTime ? "ToDate=" + ::TimeToString(iEndTime, TIME_DATE) + "\n" : NULL;
    Str += "ForwardMode=" + (string)ForwardMode + "\n";

    return(MTTESTER::SetSettings2(Str) &&
           MTTESTER::SetTimeFrame(period) && MTTESTER::ClickStart());