MQL5'te birlikte öğrenme ve yazma - sayfa 5

 
maxandsoft :

Sonuç olarak, hata ayıklama sırasında derlemeden sonra, onu MQL düzenleyicisine geri atar - hata bile vermeden. Ve çizelgeden bir danışman çıkardığınızda, üzerinde bile görünmüyor. Onlar. ne hata ayıklama ne de danışmanı başlatma herhangi bir yerde hata vermez


ancak DLL'ye izin verilmediğini yazan bir hata bulundu - yani. onu görmüyor. Soru şu ki, nerede olmalı? (sürüm 4'te herhangi bir yere yeniden yazmak gerekli değildi, varsayılan olarak Windows'un Sistemler klasöründeydi)

 
maxandsoft :


ancak bir hata bulundu DLL'ye izin verilmiyor yazıyor - ör. onu görmüyor. Soru şu ki, nerede olmalı? (sürüm 4'te herhangi bir yere yeniden yazmak gerekli değildi, varsayılan olarak Windows'un Sistemler klasöründeydi)

DLL'den içe aktarmaya izin vermeyi deneyin


 

Benim düşünceme göre, iyi bir derleyici, uygun olmayan kod seçeneklerini geçerli olanlardan filtreleyebilmesi bakımından kötü olandan farklıdır. Ve bu ana nokta. Aynı zamanda, sık sık böyle şeylerle karşılaşırsınız - hiçbir teknik durumda olmayan nefesinizi keser. Bu, dilin ifade araçlarının gelişmesine ve iyileştirilmesine katkıda bulunur. Peki, oraya veri gireceğiniz format hakkında endişelenmeniz gerekiyorsa, bu bir derleyici değil, ama ... Benim düşünceme göre, MQL5'teki derleyicinin program arayüzünden daha az iyileştirilmesi gerekiyor.

 
Rosh :

DLL'den içe aktarmaya izin vermeyi deneyin

şimdi bu yazıyor

2010.01.14 14:27:56 GetInternet (EURJPY,H1) 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries'\wininet. içinde 0x00040017 olarak okunan erişim ihlali

 
maxandsoft :

şimdi bu yazıyor

2010.01.14 14:27:56 GetInternet (EURJPY,H1) 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries'\wininet. içinde 0x00040017 olarak okunan erişim ihlali

Lütfen orijinal metni ekleyin. Özel mesajlarda yapabilirsiniz.
 
mql5 :

Lütfen orijinal metni ekleyin. Özel mesajlarda olabilir.

 //+------------------------------------------------------------------+
//|                                                  GetInternet.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link       "https://www.mql5.com"
#property version   "1.00"

#import "wininet.dll"
   int InternetAttemptConnect ( int x);
   int InternetOpenA( string sAgent, int lAccessType, 
                     string sProxyName = "" , string sProxyBypass = "" , 
                     int lFlags = 0 );
   int InternetOpenUrlA( int hInternetSession, string sUrl, 
                       string sHeaders = "" , int lHeadersLength = 0 ,
                       int lFlags = 0 , int lContext = 0 );
          
   int InternetReadFile( int hFile, int & sBuffer[], int lNumBytesToRead, 
                       int & lNumberOfBytesRead[]);
   int InternetCloseHandle( int hInet);



#import
input int Step = 300 ;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment ( "Старт..." );
   

//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
     Comment (GetURL( "http://www.forexremote.net" ));
    
  }
//+------------------------------------------------------------------+


//+----------------------------------------------------------------------------------------------------------+
//| Функция получения WEB страницы                                                                           |
//+----------------------------------------------------------------------------------------------------------+
string GetURL( string url)
{
   int rv = InternetAttemptConnect( 0 );
   if (rv != 0 )
     {
       Alert ( "Ошибка при вызове InternetAttemptConnect()" );
       return ( "" );
     }

   int hInternetSession = InternetOpenA( "Microsoft Internet Explorer" , 1 , "" , "" , 0 );
   if (hInternetSession <= 0 )
     {
       Alert ( "Ошибка при вызове InternetOpenA()" );
       return ( "" );         
     }

   int hURL = InternetOpenUrlA(hInternetSession, url, "" , 0 , 0 , 0 );
   if (hURL <= 0 )
    {
       Print ( "Ошибка получения данных с узла!" );
       //fComment("Ошибка получения данных с узла!",true);
       InternetCloseHandle(hInternetSession);
       return ( "" );         
     } 
          
   int cBuffer[ 256 ];
   int dwBytesRead[ 1 ]; 
   string TXT = "" ;
   while (! IsStopped ())
     {
       bool bResult = InternetReadFile(hURL, cBuffer, 1024 , dwBytesRead);
       if (dwBytesRead[ 0 ] == 0 )
           break ;
       string text = "" ;   
       for ( int i = 0 ; i < 256 ; i++)
         {
              text = text + CharToString (cBuffer[i] & 0x000000FF );
               if ( StringLen (text) == dwBytesRead[ 0 ])
                   break ;
              text = text + CharToString (cBuffer[i] >> 8 & 0x000000FF );
               if ( StringLen (text) == dwBytesRead[ 0 ])
                   break ;
           text = text + CharToString (cBuffer[i] >> 16 & 0x000000FF );
           if ( StringLen (text) == dwBytesRead[ 0 ])
               break ;
           text = text + CharToString (cBuffer[i] >> 24 & 0x000000FF );
         }
       TXT = TXT + text;
       //Sleep(500);

     }
     InternetCloseHandle(hInternetSession);
     return (TXT);
}
//+----------------------------------------------------------------------------------------------------------+
//| Конец Функции получения WEB страницы                                                                     |
//+----------------------------------------------------------------------------------------------------------+
 
maxandsoft :
şimdi bu yazıyor

2010.01.14 14:27:56 GetInternet (EURJPY,H1) 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries'\wininet. içinde 0x00040017 olarak okunan erişim ihlali

Gönderdiğiniz için teşekkürler, hata düzeltildi. Güncellemeleri bekleyin.
 

uh ... yapı 239 ile hata gitti, ama tam olarak değil ...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) Ana bilgisayardan veri alınırken hata oluştu!

ortaya çıktığı gibi, ikincisinin nedeni, onları unicode ile değiştiren işlevdi.

InternetOpenW() ve InternetOpenUrlW()

biraz * sorunu kaldırdı ...

Sadece bir uzman kullanmadı, ancak kodu komut dosyası olarak düzeltti.


* biraz, yalnızca utf-8 site kodlamasını yenmeye devam ettiği için:

<th width="50">&nbsp;Сообщения&nbsp;</th>
</th>

 
kombat :

uh ... yapı 239 ile hata gitti, ama tam olarak değil ...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) Ana bilgisayardan veri alınırken hata oluştu!

ortaya çıktığı gibi, ikincisinin nedeni, onları unicode ile değiştiren işlevdi.

InternetOpenW() ve InternetOpenUrlW()

biraz * sorunu kaldırdı ...

Sadece bir uzman kullanmadı, ancak kodu komut dosyası olarak düzeltti.


* biraz, yalnızca utf-8 site kodlamasını yenmeye devam ettiği için:

<th width="50">&nbsp;Сообщения&nbsp;</th>
</th>

 
maxandsoft :
yeni bir yapı bekliyorum