mql4'te yığın taşması hatasına neden olan nedir? - sayfa 2

 
RaptorUK :
Hatanın yeniden oluşturulabilmesi için tüm kodu göndermek istemiyorsanız, lütfen tam olarak gönderebileceğiniz ve aynı hatayı yeniden oluşturacak bir şey kodlayın.


Bundan hemen önceki mesajıma bakın.
 
sen bağlısın
11/13/2013 03:25 PM 37,911 Ind_error_tester.mq4
11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4
Her iki dosya da aynı.
 
WHRoeder :
sen bağlısın
11/13/2013 03:25 PM 37,911 Ind_error_tester.mq4
11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4
Her iki dosya da aynı.

Evet üzgünüm. tekrar bağlandım.
Dosyalar:
 
mt4 ile kodlayıcı mı yoksa hata toplayıcı mı olacağız?
 
RaptorUK :
. . . işlev türünüz neden int ?
Yazık ki bu soruya cevap vermedin. . . hiçbir şey döndürmesi gerekmediğinden işlevi geçersiz kılın, geri dönüş (0) yeniden derlemesini kaldırın, ne olur?
 
Görünüşe göre bu kadar büyük bir işlevi kaldıramıyor.
 //+-------------------------------------------
//| Custom indicator initialization function  
//+-------------------------------------------
int init()
  {
//---- indicators

int Column1x= 10 ,Column2x= 300 ,Column3x= 590 ,
    Column1xp= 70 ,Column2xp= 360 ,Column3xp= 650 ,
    Column1xg= 130 ,Column2xg= 420 ,Column3xg= 710 ,
    Column1xa= 250 ,Column2xa= 540 ,Column3xa= 830 ;

//---------------USD--------------------------
   //---- EURUSD-------------------
   ObjectCreate ( "EURUSD" , OBJ_LABEL , 0 , 0 , 0 );
 :
   ObjectSet( "EURGBP2" , OBJPROP_YDISTANCE , ZoomTimes* 60 );



   ObjectCreate ( "EURGBP2c" , OBJ_LABEL , 0 , 0 , 0 );
:
//+------------------------------------------------------
//| Custom indicator initialization function             
//+------------------------------------------------------
int Column1x= 10 ,Column2x= 300 ,Column3x= 590 ,
    Column1xp= 70 ,Column2xp= 360 ,Column3xp= 650 ,
    Column1xg= 130 ,Column2xg= 420 ,Column3xg= 710 ,
    Column1xa= 250 ,Column2xa= 540 ,Column3xa= 830 ;
int init(){ init1(); init2(); }
int init1()
  {
//---- indicators

//---------------USD------------------------------------
   //---- EURUSD-------------------
   ObjectCreate ( "EURUSD" , OBJ_LABEL , 0 , 0 , 0 );
:
   ObjectSet( "EURGBP2" , OBJPROP_YDISTANCE , ZoomTimes* 60 );
}
int init2()
  {
   ObjectCreate ( "EURGBP2c" , OBJ_LABEL , 0 , 0 , 0 );
:
 
RaptorUK :
Yazık ki bu soruya cevap vermedin. . . hiçbir şey döndürmesi gerekmediğinden işlevi geçersiz kılın, geri dönüş (0) yeniden derlemesini kaldırın, ne olur?


Evet bu da sıralıyor. Ama neden? Demek istediğim, fonksiyonun bir int olduğunu ve değere ihtiyacımız olduğunu söylersek. Neden nesnelerin bir kısmını değiştirmek, işlevin int olup olmadığını çözüyor. Hatta start, init ve deinit int'lerdir ve geri dönerler (0), yani sorun bu değil.
 
WHRoeder :
Görünüşe göre bu kadar büyük bir işlevi kaldıramıyor.


whroeder ne hakkında konuştuğumu anlıyor.
 
tonny :

Evet bu da sıralıyor. Ama neden? Demek istediğim, fonksiyonun bir int olduğunu ve değere ihtiyacımız olduğunu söylersek. Neden nesnelerin bir kısmını değiştirmek, işlevin int olup olmadığını çözüyor. Hatta start, init ve deinit int'lerdir ve geri dönerler (0), yani sorun bu değil.
return(0) bir int döndürür, int sıfırdır. . . void bir değer döndürmez, eğer isterseniz veya bir void işlevinden erken dönmek isterseniz, dönüşü kullanırsınız;
 
tonny :

whroeder ne hakkında konuştuğumu anlıyor.
Ancak bu kadar büyük bir işlevi işleyebilir. . . açıkladığım gibi, fonksiyon türünü değiştirin ve aynı boyutta function için derleme hatası yok. .