2014-10-08 2 views
0

C++ Вот мой кодКак я могу загрузить HTML-содержимое веб-страницы с помощью

#include <iostream> 
#include <Windows.h> 
#include <WinInet.h> 

using namespace std; 

int main() 
{ 
    HINTERNET hSession, hURL; 
    char* Buffer = new char[1024]; 
    DWORD BufferLen, BytesWritten; 
    HANDLE FileHandle; 

    hSession = InternetOpenA(NULL, 0, NULL, NULL, 0); 
    hURL = InternetOpenUrlA(hSession, "http://www.google.co.uk", NULL, 0, 0, 0); 

    FileHandle = CreateFileA("C:\\temp.txt", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0); 
    BytesWritten = 0; 
    do 
    { 
     InternetReadFile(hURL, Buffer, 1024, &BufferLen); 
     WriteFile(FileHandle, Buffer, BufferLen, &BytesWritten, NULL); 
    } while (BufferLen != 0); 
    CloseHandle(FileHandle); 

    InternetCloseHandle(hURL); 
    InternetCloseHandle(hSession); 

    ShellExecuteA(0, "open", "C:\\temp.txt", NULL, NULL, 1); 

    cout << "Operation complete!"; 
    system("PAUSE"); 
    return 0; 
} 

Вот ошибки я встречая

error LNK2019: unresolved external symbol [email protected] referenced in function _main 
error LNK2019: unresolved external symbol [email protected] referenced in function _main 
error LNK2019: unresolved external symbol [email protected] referenced in function _main 
error LNK2019: unresolved external symbol [email protected] referenced in function _main 

Я не понимаю, где я неправильно , Я импортировал Wininet.h и Windows.h. Почему все еще не удается найти эти функции? С уважением.

+4

Вы должны сделать больше, чем добавить WinInet.h к источнику - вы есть на самом деле связать библиотеку. Вот почему вы получаете ошибки компоновщика. Включите Wininet.lib в свой проект: (Project-> Properties-> Configuration Properties-> Linker-> Input-> Additional Dependencies) – SubSevn

+0

Потому что они просто говорят компилятору, как вызвать функции. На самом деле они не содержат код. Посмотрите страницу MSDN для упомянутых функций и убедитесь, что вы связываете библиотеки, в которых они содержатся. – enhzflep

+0

Это ошибка компоновщика, поэтому, скорее всего, компилятор не может найти файл библиотеки WinInet. Хотя функции объявлены в WinInet.h, компилятор нуждается в доступе к фактическому объекту (который живет в файле WinInet.lib) для правильной компиляции программы. – Moritz

ответ

0

Что вы сделали, это включить заголовочный файл, но не связан с фактическим кодом, который его реализует.

Включите Wininet.lib в свой проект.

Проект-> свойства-> Конфигурация свойства-> Linker-> Вход-> Дополнительные зависимости