MQL5에서 함께 배우고 쓰기 - 페이지 5

 
maxandsoft :

따라서 결론은 디버깅 중에 컴파일한 후 오류를 표시하지 않고 MQL 편집기로 다시 던집니다. 그리고 차트에서 어드바이저를 뽑기만 하면 차트에 나오지도 않습니다. 저것들. 어드바이저를 디버깅하거나 실행하지 않아도 어디에서나 오류가 발생하지 않습니다.


하지만 DLL이 허용되지 않는다는 오류를 발견했습니다. 그는 그녀를 보지 못한다. 문제는 그것이 어디에 있어야 합니까? (버전 4에서는 아무데도 다시 쓸 필요가 없었습니다. 기본적으로 Windows의 Systems 폴더에 있었습니다)

 
maxandsoft :


하지만 DLL이 허용되지 않는다는 오류를 발견했습니다. 그는 그녀를 보지 못한다. 문제는 그것이 어디에 있어야 합니까? (버전 4에서는 아무데도 다시 쓸 필요가 없었습니다. 기본적으로 Windows의 Systems 폴더에 있었습니다)

DLL에서 가져오기 허용 시도


 

제 생각에 좋은 컴파일러는 실행 가능한 코드 옵션에서 실행 불가능한 코드 옵션을 걸러낼 수 있다는 점에서 나쁜 컴파일러와 다릅니다. 그리고 이것이 요점입니다. 동시에, 당신은 종종 그러한 것들을 접합니다. 그것은 기술적인 조건에 있지 않은 당신의 숨을 멈춥니다. 이것은 언어의 표현 수단의 발전과 향상에 기여합니다. 글쎄, 거기에 데이터를 입력하는 형식에 대해 걱정해야한다면 이것은 컴파일러가 아니지만 ... 제 생각에는 MQL5의 컴파일러는 프로그램 인터페이스 못지 않게 개선되어야합니다.

 
Rosh :

DLL에서 가져오기 허용 시도

이제 이것이 그가 쓰는 것입니다.

2010.01.14 14:27:56 GetInternet (EURJPY, H1) 액세스 위반 읽기 0x00040017 in 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Library\D0E8209F77C8CF37EAD8BF5

 
maxandsoft :

이제 이것이 그가 쓰는 것입니다.

2010.01.14 14:27:56 GetInternet (EURJPY, H1) 액세스 위반 읽기 0x00040017 in 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Library\D0E8209F77C8CF37EAD8BF5

원문을 첨부해주세요. 당신은 개인 메시지 에서 할 수 있습니다.
 
mql5 :

원문을 첨부해주세요. 비공개 메시지에 있을 수 있습니다.

 //+------------------------------------------------------------------+
//|                                                  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 :
이제 이것이 그가 쓰는 것입니다.

2010.01.14 14:27:56 GetInternet (EURJPY, H1) 액세스 위반 읽기 0x00040017 in 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Library\D0E8209F77C8CF37EAD8BF5

게시해 주셔서 감사합니다. 버그가 수정되었습니다. 업데이트를 기다리십시오.
 

어... 빌드 239에서 오류가 사라졌지만 완전히...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) 호스트에서 데이터를 가져오는 중 오류가 발생했습니다!

결과적으로 후자의 이유는 유니코드로 대체하는 기능 때문이었습니다.

InternetOpenW() 및 InternetOpenUrlW()

약간 * 문제를 언로드했습니다 ...

전문가가 사용하지 않고 스크립트로 코드를 수정했습니다.


* 약간, utf-8 사이트 인코딩을 물리치는 것이 남아 있기 때문입니다.

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

 
kombat :

어... 빌드 239에서 오류가 사라졌지만 완전히...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) 호스트에서 데이터를 가져오는 중 오류가 발생했습니다!

결과적으로 후자의 이유는 유니코드로 대체하는 기능 때문이었습니다.

InternetOpenW() 및 InternetOpenUrlW()

약간 * 문제를 언로드했습니다 ...

전문가가 사용하지 않고 스크립트로 코드를 수정했습니다.


* 약간, utf-8 사이트 인코딩을 물리치는 것이 남아 있기 때문입니다.

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

 
maxandsoft :
새로운 빌드를 기다리고 있습니다