MQL4 - automated forex trading   /  

Форум

wininet.dll

К списку тем  | 1 2 3 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
55
Monster 21.10.2006 20:32 
Прошу помощи, многое перебрал информации уже в голову ничего не лезет :(


#import "wininet.dll"
int InternetOpen (string agent, int access, int io1, int io2, int io3);
int InternetOpenUrl(int handle, string url, int iou1, int iou2, int iou3, int iou4);
int InternetReadFile(int handle, int buffer, int size, string text);
int InternetCloseHandle(int handle);
#import


Хотел такие вот функции использовать, а вот как подключить не смог понять.
#import "wininet.dll"
Что здесь необходимо написать и как узнать правильный синтаксис для функций?
#import

==================================================
Должно было получиться как вот тут: 'TicksInMySQL'

#import "libmysql.dll"
int mysql_init(int db);
int mysql_errno(int TMYSQL);
int mysql_real_connect(int TMYSQL, string host, string user, string password, 
                       string DB,int port,int socket,int clientflag);
int mysql_real_query(int TMSQL, string query, int length);
void mysql_close(int TMSQL);
#import




Бесплатная Groupware для групп разработчиков

Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение.


avatar
8628
Integer 21.10.2006 21:30 

Нужна еще одна функция InternetAttemptConnect()


avatar
55
Monster 21.10.2006 22:13 
Integer писал (а):

Нужна еще одна функция InternetAttemptConnect()


И что она оделает???

Я предпологал что надо так:

Допустим, вам нужно просто прочитать определенный файл (URL). Тогда ваш код может напоминать этот:

HINTERNET hInternetSession;   
HINTERNET hURL;
char cBuffer[1024];            // I'm only going to access 1K of info.
BOOL bResult;
DWORD dwBytesRead;

// Make internet connection.
hInternetSession = InternetOpen(
                  "Microsoft Internet Explorer", // agent
                  INTERNET_OPEN_TYPE_PRECONFIG,  // access
                  NULL, NULL, 0);                // defaults

// Make connection to desired page.
hURL = InternetOpenUrl(
         hInternetSession,                       // session handle
         "http://www.acompany.com/welcome.htm",  // URL to access
         NULL, 0, 0, 0);                         // defaults

// Read page into memory buffer.
bResult = InternetReadFile(
            hURL,              // handle to URL
            (LPSTR)cBuffer,    // pointer to buffer
            (DWORD)1024,       // size of buffer
            &dwBytesRead); // pointer to var to hold return value

// Close down connections.
InternetCloseHandle(hURL);
InternetCloseHandle(hInternetSession);

Это - все, что требуется для подключения, чтения определенной информации (файла) по URL и отсоединения. Как уже говорилось в начале статьи - это очень просто реализовать


avatar
8628
Integer 21.10.2006 22:25 
Если бы я знал, что и как))))

Посидел немного над этим на досуге - сходу не получилось. Тут есть пример загрузки страницы в ex4, включил подтверждение вызова dll и выяснилось, что еще и эта функция используется. Полазил по инету на тему wininet - ничего не нашел про эту функцию. Но тут вариантов может быть 2: либо она просто вызывается в начале, либо вызывается, проверяется ее результат работы и делается выбор. Вобщем не так просто;-)

avatar
55
Monster 21.10.2006 22:39 
Integer писал (а):
Если бы я знал, что и как))))

Посидел немного над этим на досуге - сходу не получилось. Тут есть пример загрузки страницы в ex4, включил подтверждение вызова dll и выяснилось, что еще и эта функция используется. Полазил по инету на тему wininet - ничего не нашел про эту функцию. Но тут вариантов может быть 2: либо она просто вызывается в начале, либо вызывается, проверяется ее результат работы и делается выбор. Вобщем не так просто;-)
wininet - это не функция это библиотека функций, вот уменя как раза сложности с описанием в эксперте!!!

Посмотрел в справочнике по MQL4 в разделе Импорт функций там ооочень кратко все написано и многим не понятно!!!

Вот там такой пример:
#import "user32.dll"
int MessageBoxA(int hWnd, string lpText, string lpCaption, int uType);
#import

Понятно что это стандартная библиотека которая находиться в системе, в этой библиотеке есть функция MessageBoxA с входными параметрами.
Но мне не понятно что мне сделать что бы я смог описать функции из wininet.dll и полноценно ими пользоваться???

avatar
8628
Integer 21.10.2006 22:55 
Monster писал (а):

wininet - это не функция это библиотека функций, вот уменя как раза сложности с описанием в эксперте!!!

Да нет, я не ошибся - имел в виду именно функцию входящую в эту библиотеку.

avatar
55
Monster 22.10.2006 02:14 

Описать получилось, вот загвоздка появилась наверное вопрос к разработчикам

есть функция InternetReadFile(int handle, string buffer, int size, string text); у которой последний параметр это возвращаемое значение, которое я не могу получить!!!

Как мне получить значение???


avatar
55
Monster 22.10.2006 14:50 
//+------------------------------------------------------------------+
//|                                                       Sample.mq4 |
//|                                            Copyright ©  2006, Oleg|
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Oleg"
 
#import "wininet.dll"
 
  int InternetAttemptConnect(
    int    dwReserved=0
  );
   
  int InternetOpenA(
    string lpszAgent,
    int    dwAccessType=0,
    string lpszProxyName="",
    string lpszProxyBypass="",
    int    dwFlags=0
  );
 
  int InternetOpenUrlA(
    int    hInternetSession,
    string lpszUrl,
    string lpszHeaders,
    int    dwHeadersLength,
    int    dwFlags,
    int    dwContext    
  );
 
  bool InternetReadFile(
    int hFile,
    int lpBuffer,
    int dwNumberOfBytesToRead,
    int lpNumberOfBytesRead
  );
 
  bool InternetCloseHandle(
    int hInet
  );
#import
 
 
int start()
  {
//----
   string message;
   string s;
   bool bResult;
   int bytes=8;   
   
   int sss = InternetAttemptConnect(0);
   int handle = InternetOpenA("Microsoft Internet Explorer",1,0,0,0);
   int hurl = InternetOpenUrlA(handle, "http://mql.w4u.ru/test.txt",0,0,0,0);
 
   while (bytes>0)
   {
      bResult = InternetReadFile(hurl, message, 1024, bytes); 
      s = s+message;
      Print(s);
   }
   
   Print(handle);
   Print(hurl);
   Print(bResult);
   Print(message);
 
    InternetCloseHandle(hurl);
    InternetCloseHandle(handle);
    Sleep(5000);   
//----
   return(0);
  }
Помогите разобраться с ошибкой.... :(

avatar
8628
Integer 22.10.2006 19:00 
на первый згляд - там где при вызове функций должны быть стринги стоят инты. Сейчас некогда, но думаю добъем это дело;-)

avatar
55
Monster 22.10.2006 22:41 

Тема закрыта разобрался :) помогла статья
'Файловые операции в MQL4 без ограничений'


avatar
181
mandor 23.10.2006 12:29 
Monster писал (а):

Тема закрыта разобрался :) помогла статья
'Файловые операции в MQL4 без ограничений'


Кстати, это работает. См. Запись веб-страницы в файл

@ Херург
К списку тем   | 1 2 3  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий