Форум программистов, компьютерный форум CyberForum.ru

Выход в интернет - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
BTR
 Аватар для BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
29.03.2011, 21:12     Выход в интернет #1
Всем привет столкнулся с такой проблемой, начал создавать консольную программку использующую интернет и вроде бы ошибок нет, в смысле синтаксических, а компилятор не пойму на что жалуется. Вот процесс компиляции:


1>------ Построение начато: проект: testInet, Конфигурация: Debug Win32 ------
1>Построение начато 29.03.2011 21:07:40.
1>InitializeBuildStatus:
1> Обращение к "Debug\testInet.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__InternetReadFile@16 в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__HttpSendRequestA@20 в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__HttpOpenRequestA@32 в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__InternetConnectA@32 в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__InternetCloseHandle@4 в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__InternetOpenA@20 в функции _main
1>c:\documents and settings\андрей\мои документы\visual studio 2010\Projects\testInet\Debug\testInet.exe : fatal error LNK1120: 6 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.18
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


А вот сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <windows.h>
#include <wininet.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    bool ok = false;
 
    HINTERNET hInet = InternetOpen("MyDownloadMaster", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    if(hInet == NULL) {
        cout << "ППЦ" ;
        InternetCloseHandle(hInet);
        system("pause >> void");
        exit(-1);
    }
 
    HINTERNET hConnect = InternetConnect(hInet, "www.phpforum.ru", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
    if(hConnect == NULL) {
        cout << "Не удалось подключиться к интернету";
        InternetCloseHandle(hConnect);
        InternetCloseHandle(hInet);
        system("pause >> void");
        exit(-1);
    }
 
    HINTERNET query = HttpOpenRequest(hConnect, "GET", "index.php", NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 0);
    if(query == NULL) {
        cout << "Не удалось найти сервер, попробуйте указать другой.";
        InternetCloseHandle(query);
        InternetCloseHandle(hConnect);
        InternetCloseHandle(hInet);
        system("pause >> void");
        exit(-1);
 
    }
 
    bool result = HttpSendRequest(query, NULL, 0 , NULL, 0);
 
    if(result) {
    
          // создаём выходной файл
     ofstream fnews("news.html", ios::app);
     if (fnews.is_open()) for (;;) {
     // читаем данные
     char  szData[1024];
     DWORD dwBytesRead;
     BOOL bRead = InternetReadFile(query, szData, sizeof(szData)-1, &dwBytesRead);
 
                             // выход из цикла при ошибке или завершении
                        if (bRead == FALSE  ||  dwBytesRead == 0)
                            break;
 
                        // сохраняем результат
                        szData[dwBytesRead] = 0;
                        fnews << szData;
                        
                        ok = true;
                    }
 
 
}
        // закрываем запрос
        InternetCloseHandle(query);
         
        // закрываем сессию
        InternetCloseHandle(hConnect);
    
        // закрываем WinInet
        InternetCloseHandle(hInet);
 
 
 
 
    if (ok)
        system("start news.html");
 
    return 0;
}
Заранее всех благодарю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 21:12     Выход в интернет
Посмотрите здесь:

Выход из <do-while> C++
Выход из программы C++
Выход из цикла C++
Выход из цикла C++
Выход из цикла C++
Выход из лабиринта C++
Выход из игры C++
Выход из switch C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
29.03.2011, 23:05     Выход в интернет #2
"ссылка на неразрешенный внешний символ __imp__InternetReadFile@16 "

означает что не подключена библиотека с этой функцией, по всей видимости это wininet.lib

надо ее включить в начале кода
C++
1
#pragma comment(lib,"wininet.lib")
когда включаете неизвестные вам хедеры
по типу wininet.h
нужно убедиться не тащат ли они за собой библиотеку, в основном названия у них такие же
только с .lib на конце
Yandex
Объявления
29.03.2011, 23:05     Выход в интернет
Ответ Создать тему
Опции темы

Текущее время: 02:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru