Скачать MetaTrader 5

Internet API. Как его использовать?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114297
Forex Trader  
Функции интернет экспортируются библиотекой WININET.DLL
Требуется использовать 4 функции: InternetOpen, InternetOpenUrl, InternetReadFile и InternetCloseHandle.
На Си функции описаны так:

typedef LPVOID HINTERNET;

HINTERNET InternetOpen(
    IN LPCTSTR lpszAgent,
    IN DWORD dwAccessType,
    IN LPCTSTR lpszProxyName OPTIONAL,
    IN LPCSTR lpszProxyBypass OPTIONAL,
    IN DWORD dwFlags
);

HINTERNET InternetOpenUrl(
    IN HINTERNET hInternetSession, 
    IN LPCTSTR lpszUrl,
    IN LPCTSTR lpszHeaders OPTIONAL,
    IN DWORD dwHeadersLength,
    IN DWORD dwFlags,
    IN DWORD dwContext
);

BOOL InternetReadFile(
    IN HINTERNET hFile,
    IN LPVOID lpBuffer,
    IN DWORD dwNumberOfBytesToRead,
    OUT LPDWORD lpNumberOfBytesRead
);

BOOL InternetCloseHandle(
    IN HINTERNET hInet
);



Программа на Си выглядит так:

#define INTERNET_OPEN_TYPE_PRECONFIG  0

typedef LPVOID HINTERNET;

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);



Здесь подключение к интернет и скачивание 1024 байт со страницы в символьный буфер. Как импортировать эти функции и сделать подобный фрагмент кода в MQL4?

Forex Trader
114297
Forex Trader  
В разделе импорта должно быть что-то типа этого
#import "wininet.dll"
  int InternetOpenA(
    string lpszAgent,
    int    dwAccessType,
    string lpszProxyName="",
    string lpszProxyBypass=""
  );

  int InternetOpenUrlA(
    int    hInternetSession,
    string lpszUrl,
    string lpszHeaders=""
  );

  bool InternetReadFile(
    int hFile,
    int lpBuffer,
    int dwNumberOfBytesToRead,
    int lpNumberOfBytesRead
  );

  bool InternetCloseHandle(
    int hInet
  );
#import
Forex Trader
114297
Forex Trader  
Ответ не верный. Верный ответ "MQL4: Запись веб-страницы в файл"
Forex Trader
114297
Forex Trader  
А какой верный ответ будет??
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий