Изучаем и пишем вместе на MQL5 - страница 5

 
maxandsoft :

Так суть в том что скомпилировав при отладке выкидывает обратно в редактор MQL - даже не дав ошибки. А когда просто вытаскиваешь на график советника то он даже на нем не появляеться.  Т.е. ни отладка, ни запуск советника ни где ошибок не дают

 


а вот нашел ошибку пишет DLL is not allowed - т.е. он ее не видет. Вопрос где она должна лежать? (в 4 версии ее переписывать не нужно было куда либо, она была по умолчанию в Systems папке Windows)

 
maxandsoft   :


а вот нашел ошибку пишет DLL is not allowed - т.е. он ее не видет. Вопрос где она должна лежать? (в 4 версии ее переписывать не нужно было куда либо, она была по умолчанию в Systems папке Windows)

Попробуйте разрешить импорт из DLL


 

По моему хороший компилятор отличается от плохого тем, что на нём можно отбраковывать нежизнеспособные  варианты кода от жизнеспособных. И это главное. При этом часто наталкиваешься на такие вещи - дух захватывает, которых нет ни в каких технических условиях. Это способствует развитию и совершенствованию выразительных средств языка. Ну а если надо беспокоится о том в каком формате туда ввести данные - это не компилятор а ... По моему, компилятор в MQL5 нуждается в доработке не меньше чем интерфейс программы.

 
Rosh   :

Попробуйте разрешить импорт из DLL

теперь вот что пишет

2010.01.14 14:27:56 GetInternet (EURJPY,H1) Access violation read to 0x00040017 in 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\wininet.dll'

 
maxandsoft   :

теперь вот что пишет

2010.01.14 14:27:56 GetInternet (EURJPY,H1) Access violation read to 0x00040017 in 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\wininet.dll'

Приложите пожалуйста исходный текст. МОжно в личные сообщения.
 
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) Access violation read to 0x00040017 in 'C:\Users\Fujitsu\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\wininet.dll'

Спасибо за сообщение, ошибка исправлена. Ждите обновлений.
 

эээ... с билдом 239 ошибка ушла, но не совсем...

2010.01.14 23:55:33    GetInternet (USDJPY,H1)    Ошибка получения данных с узла!

как оказалось, причиной последнего явилось функции, замена оных на юникодные

InternetOpenW() и InternetOpenUrlW()

слегка* проблему разгрузил...

Только пользовал не эксперт, а поправил код как скрипт.


*слегка, лишь потому что осталось победить ютф-8 кодировку сайта:

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

 
kombat:

эээ... с билдом 239 ошибка ушла, но не совсем...

2010.01.14 23:55:33    GetInternet (USDJPY,H1)    Ошибка получения данных с узла!

как оказалось, причиной последнего явилось функции, замена оных на юникодные

InternetOpenW() и InternetOpenUrlW()

слегка* проблему разгрузил...

Только пользовал не эксперт, а поправил код как скрипт.


*слегка, лишь потому что осталось победить ютф-8 кодировку сайта:

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

 
maxandsoft:
ждемс новый билд
Причина обращения: